如何获取多个表的金额总和?

问题描述 投票:0回答:1

我有三 (3) 个表,我想从中获取金额的总和。

订单详情

产品 金额 订购日期
苹果 10 2023-09-01
橙色 5 2023-10-01

学习者详情

姓名 金额 订购日期
导师 30 2023-09-01
征费 10 2023-09-01

店铺详情

姓名 金额 订购日期
地点A 5 2023-09-01
B地点 5 2023-10-01

这是我尝试过的。

SELECT 
    DATEPART(m, orderdate) AS Month,
    Total = (SELECT SUM(amount)
             FROM orderdetail) +
            (SELECT SUM(amount)
             FROM learnerdetail) +  
            (SELECT SUM(amount)
             FROM storedetail)
GROUP BY 
    DATEPART(m, orderdate) 

预期产量

订购日期 总计
2023-09-01 55
2023-10-01 10
sql-server-2014
1个回答
0
投票

一种可能的解决方案涉及利用

WITH
子句创建一个临时表来统一来自不同来源的所需数据。随后,我们使用
SELECT
语句和
GROUP BY
子句来获取所需的聚合值。

WITH mytable
     AS (SELECT *
         FROM   order_details
         UNION
         SELECT *
         FROM   learner_details
         UNION
         SELECT *
         FROM   store_details)
SELECT Sum(amount),
       Month(order_date)
FROM   mytable
GROUP  BY Month(order_date); 

这里的 SQL 查询将三个表(order_details、learner_details、store_details)中的数据合并到一个公共表中。然后,它计算每个月“金额”列的总和,并对结果进行相应分组。

© www.soinside.com 2019 - 2024. All rights reserved.