원하는 결과는 한 주문에 대한 정보입니다. 내 주문에 일부 주문 항목이있는 경우 folowing 쿼리가 제대로 작동하지만 빈 주문 인 경우 아무 정보도 제공하지 않습니다. 예를 들어 내 orderid = 5이고이 항목에는 아직 항목이 없습니다. orderitem을 사용하여 주문의 총 비용을 계산합니다. 주문 정보가 없을 때 어떻게 내 정보를 얻습니까? 이것은 내 쿼리입니다 :orderitems가없는 SQL 순서는 결과를 제공하지 않습니다.
SELECT DISTINCT
u.firstname|| ' ' || u.lastname,
TO_CHAR(o.date,'DD-MON-YY HH24:mm'),
(SELECT SUM(oItem.amount * oItem.pricewhenordered) FROM ORDERITEM oItem WHERE
oItem.ORDERID=o.ID),
(case o.employeeid
when null then '-'
else (SELECT us.firstname|| ' ' || us.lastname FROM user us WHERE
id=o.employeeid)
END),
o.status
FROM order o, orderitem oItem, user u
WHERE o.userid = u.id
AND o.id = oItem.orderid
AND o.id = 5;
테이블
order
ID, 사용자 ID, 날짜, 상태, 직원 ID
orderitem
에 OrderID, 제품 ID, 양, 는 pricewhenordered
user
ID, 사용자 이름, 비밀번호, FIRSTNAME, LASTNAME, usertypeid
당신이 항목에 대한 더 이상의 정보를 필요로하지 않는다면 (그리고 제 추측은 그렇지 않습니다) 그러면 이것은 바람직합니다 내 대답에. –
이것이 내가 찾고 있었던 것이다. 메인 쿼리에서 쓸모없는 orderitem을 간과하는 것은 그리 똑똑하지 않습니다. Thx 빠르고 좋은 회신 :) –