互換性のない条件を持つ MYSQL の 2 つのクエリの出力を結合する方法

互換性のない条件を持つ MYSQL の 2 つのクエリの出力を結合する方法

次の 2 つのクエリの出力を合計するのに支援を求めています。 2 つの条件は互換性がないため、1 つのクエリで組み合わせるのに苦労しています。

今年累計総収益

両方のクエリの出力を結合するにはどうすればよいですか?

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 である 3 番目のクエリの SELECT 句で、両方のクエリを使用してみることもできます。これにより、両方のクエリの結果を含む 1 つの行が返されます。

例:

クエリ:

選択する
(選択する
sum(datediff(返却日、期日)*(products.rentalfee*0.2))
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate) AS '延滞料金 YTD'
、(選択する
sum(products.レンタル料金*注文詳細.数量)
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate OR duedate = returndate) AS 'Total Revenue YTD'

デュアルから;

結果:

+---------------+-------------------+
| 年累計延滞料金 | 年累計総収益 |
+---------------+-------------------+
| 3 | 4 |
+---------------+-------------------+

関連情報