호환되지 않는 조건이있는 경우 MYSQL에서 두 쿼리의 출력을 결합하는 방법 하나의 쿼리로 결합하는

다음 두 쿼리의 출력을 합산하는 데 도움이 필요합니다. 두 가지 호환되지 않는 조건이 있으므로 하나의 쿼리로 결합하는 데 어려움을 겪고 있습니다.

현재까지의 총 수익

두 쿼리의 출력을 결합하는 방법은 무엇입니까?

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 |
+ --------------- + ------------------- +