当 MYSQL 中的两个查询具有不兼容的条件时,如何合并它们的输出

当 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 

答案1

您可以尝试在第三个查询的 select 子句中使用这两个查询,其中您要从中选择的表是 DUAL。这样可以返回一行,其中包含两个查询的结果。

例子:

询问:

选择
(选择
总和(datediff(返回日期,到期日期)*(产品。租赁费*0.2))
从产品内部连接订单详情
ON 产品.产品ID = 订单详情.产品ID
WHERE returndate > duedate) AS '年初至今的滞纳金'
,(选择
总和(产品.租赁费*订单详情.数量)
从产品内部连接订单详情
ON 产品.产品ID = 订单详情.产品ID
WHERE returndate > duedate OR duedate = returndate) AS '年初至今总收入'

来自双重;

结果:

+---------------+-------------------+
| 年初至今的滞纳金 | 年初至今的总收入 |
+---------------+-------------------+
| 3 | 4 |
+---------------+-------------------+

相关内容