
Copy
select
purchase.order_no,
case
when count(request.order_no) = 1
then max(prod_name)
else max(prod_name) || ' 외 ' || count(request.order_no) -1 || ' 건'
end as title
from purchase
join pay on purchase.order_no = pqy.order_no
left outer join request on purchase.order_no = request.order_no
left outer join prod on request.prod_no = prod.prod_no
group by request.order_no, prod.prod_name
제가 한 결과는 이렇게 나오네요
| 1001 |
| 1001 |
| 1001 |
| 1002 |
| 1003 |
| 1004 |
| 1005 |
| 1006 |
이것 때문에 집에 못가고 있습니다.
도움 부탁드립니다.
1001
1002
1003
|
답변 3개 / 댓글 2개
채택된 답변
+20 포인트
2017-11-02 (목) 23:50:24
Copy
select a.order_no, concat(concat(concat(prod_name," 외"),count(prod_name))," 건") cnt
from purchase a, request c, prod d
where a.order_no = c.order_no
and c.prod_no = d.prod_no
group by order_no
;
중간에 pay는 혼란을 초래하는 구조라서,
추출내용상 pay의 정보가 필요없어서 주석처리했습니다.

2017-11-02 그누qna 쿼리확인.png (776x412) (17,522 bytes)
답변에 대한 댓글 1개
2017-11-03 (금) 00:01:11
2017-11-03 (금) 00:12:57
@선구자
늦은시간까지 고생하시네요
조심히 퇴근하세요
늦은시간까지 고생하시네요
조심히 퇴근하세요
2017-11-02 (목) 23:24:41
원하시는게 조건이 뭔지 모호하네요
잘못 기록한 SQL으로는
원하시는게 뭘까요?
단순히
select distinct order_no는 아닌거 같은데
원하시는걸 글로 적어보시는게 어떨까요?
답변에 대한 댓글 1개
2017-11-02 (목) 23:30:18
원하는 결과는
주문번호가
1001
1002
1003
이렇게 나오는 것인데
현재 쿼리 결과는
주문번호 1개에 상품이 여러개 있으니까 아래처럼 나옵니다.
1001 사과
1001 복숭아
1001 바나나
제가 원하는 결과는 아래와 같습니다.
1001 사과 외 2건
1004 복수아
1005 과일
죄송합니다..
주문번호가
1001
1002
1003
이렇게 나오는 것인데
현재 쿼리 결과는
주문번호 1개에 상품이 여러개 있으니까 아래처럼 나옵니다.
1001 사과
1001 복숭아
1001 바나나
제가 원하는 결과는 아래와 같습니다.
1001 사과 외 2건
1004 복수아
1005 과일
죄송합니다..
답변을 작성하려면 로그인이 필요합니다.
일단 퇴근하고 집에서 실행해 보겠습니다.