다음 두 쿼리의 출력을 합산하는 데 도움이 필요합니다. 두 가지 호환되지 않는 조건이 있으므로 하나의 쿼리로 결합하는 데 어려움을 겪고 있습니다.
연도별 총 수익
두 쿼리의 출력을 결합하는 방법은 무엇입니까?
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
답변1
선택하는 테이블이 DUAL인 세 번째 쿼리의 select 절에서 두 쿼리를 모두 사용해 볼 수 있습니다. 이렇게 하면 두 쿼리의 결과와 함께 하나의 행이 반환될 수 있습니다.
예:
질문:
선택하다 (선택하다 sum(dateiff(반품 날짜, 마감일)*(products.rentalfee*0.2)) FROM 제품 INNER JOIN 주문 세부정보 ON 제품.제품ID = 주문상세정보.제품ID WHERE 반납일 > 마감일) AS '연체료 YTD' ,(선택하다 합계(제품.임대료*주문 세부정보.수량) FROM 제품 INNER JOIN 주문 세부정보 ON 제품.제품ID = 주문상세정보.제품ID WHERE 반품 날짜 > 마감일 OR 마감일 = 반품 날짜) AS '총 수익 YTD'
듀얼에서;
결과:
+---------------+------+ | 연체료 YTD | 총 수익 YTD | +---------------+------+ | 3 | 4 | +---------------+------+