sql - 使用汇总的 SQL 查询
问题描述
这是我的查询
select X.Memo, X.Month, Format(sum(X.[Total Sales S$]),'#,0.00') as [Rental Sales $]
, Format(sum(X.[Net GP S$]),'#,0.00') as [Rental GP $]
from Data X
group by X.Month,X.Memo
这是我的结果:
预期的结果应该是这样的:
是否可以在 SQL 中做到这一点?可以帮我查询吗?
解决方案
一种方法是使用 case 语句并获得您提到的结果。您可以以类似的方式添加所需的列并获取输出。
SELECT MONTH,
sum(CASE WHEN Memo = 'Rental' THEN sales$ END) Rental_$,
sum(CASE WHEN Memo = 'Rental' THEN GP$ END) Rental_GP,
sum(CASE WHEN Memo = 'Sales' THEN sales$ END) Sales_$,
sum(CASE WHEN Memo = 'Sales' THEN GP$ END) Sales_GP
FROM tablea
GROUP BY MONTH
SELECT MONTH,
Format(sum(CASE WHEN Memo = 'Rental' THEN (X.[Total Sales S$]) END), '#,0.00') Rental_$,
Format(sum(CASE WHEN Memo = 'Rental' THEN (X.[Net GP S$]) END), '#,0.00') Rental_GP,
Format(sum(CASE WHEN Memo = 'Sales' THEN (X.[Total Sales S$]) END), '#,0.00') Sales_$,
Format(sum(CASE WHEN Memo = 'Sales' THEN (X.[Net GP S$]) END), '#,0.00') Sales_GP,
Format((sum(CASE WHEN Memo = 'Rental' THEN (X.[Total Sales S$]) END) + sum(CASE WHEN Memo = 'Sales' THEN (X.[Total Sales S$]) END)), '#,0.00') [Total Sales S$],
Format((sum(CASE WHEN Memo = 'Rental' THEN (X.[Net GP S$]) END) + sum(CASE WHEN Memo = 'Sales' THEN (X.[Net GP S$]) END)), '#,0.00') [Total GP S$]
FROM DATA X
GROUP BY MONTH WITH ROLLUP
ORDER BY SUM(X.MN) ASC
推荐阅读
- python - 使用网格 python 制作 tkinter 水平滚动条
- c - 函数范围和指针
- cookies - 只有一个请求时,多个同名的cookie如何进行认证?
- node.js - 不能在节点 14 中使用可选链接 - 语法错误?
- go - Couchbase 连接池
- android - 我不能使用 findViewById(int)。无法参考
- powershell - 尝试从多值属性“Proxyaddresses”导出到 csv
- java - Spring Boot 中的 TaskRejectedException
- c# - 如何创建到 Azure 数据湖存储到 API 的连接?
- vb.net - 打印报表查看器中的字符无效“$”