我有三 (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 |
一种可能的解决方案涉及利用
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)中的数据合并到一个公共表中。然后,它计算每个月“金额”列的总和,并对结果进行相应分组。