다음 두 쿼리의 출력을 합산하는 데 도움이 필요합니다. 두 가지 호환되지 않는 조건이 있으므로 하나의 쿼리로 결합하는 데 어려움을 겪고 있습니다.
현재까지의 총 수익
두 쿼리의 출력을 결합하는 방법은 무엇입니까?
SELECT
sum(datediff(returndate, dueDate)*(products.rentalfee*0.2)) AS 'Late Fees YTD'
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate
과
SELECT
sum(products.RentalFee*orderdetails.quantity)
AS 'Total Revenue YTD'
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate OR duedate = returndate
답변
선택하는 테이블이 DUAL 인 세 번째 쿼리의 select 절에서 두 쿼리를 모두 사용해 볼 수 있습니다. 이를 통해 두 쿼리의 결과와 함께 하나의 행을 반환 할 수 있습니다.
예:
질문:
고르다 (고르다 합계 (datediff (반환 일, 기한) * (products.rentalfee * 0.2)) INNER JOIN 제품에서 주문 세부 정보 ON products.productID = 주문 정보 .productID returndate> duedate) AS 'Late Fees YTD'로 ,(고르다 합계 (products.RentalFee * orderdetails.quantity) INNER JOIN 제품에서 주문 세부 정보 ON products.productID = 주문 정보 .productID 반환 날짜> 마감 날짜 또는 마감 날짜 = 반환 날짜) AS '총 수익 YTD'
듀얼에서;
결과:
+ --------------- + ------------------- + | 연체료 YTD | 총 수익 YTD | + --------------- + ------------------- + | 3 | 4 | + --------------- + ------------------- +