sql - 将 2 个 SQL 日期范围的结果输出到一个输出中
问题描述
我一直在努力解决这个问题,现在可能想多了,所以希望你能帮助我。
我有一个销售交易表。在其中,是每笔交易的日期列表,我想按帐户代码查看并并排放置,但要使用日期范围比较帐户 2019 年的支出与其 2020 年的支出
到目前为止,我只能得到其中一个,而不能两者兼得。
我查看了嵌套选择、联合以及更多我无法回忆的内容,但我没有得到任何结果。
我已经接近了,我想用这段代码:
SELECT inv_account,
(SELECT SUM(basevalue)) from salestrans WHERE inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31'),
(SELECT SUM(basevalue)from salestrans WHERE inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31')
FROM salestrans
GROUP BY inv_account
这是给我每个帐户的总数,而不是个人帐户。现在我需要按个人帐户对其进行过滤,我假设该帐户位于括号中的 SELECT 中,但不确定如何执行此操作。
解决方案
使用条件聚合:
SELECT inv_account,
SUM(CASE WHEN inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31' THEN basevalue ELSE 0 END) total1,
SUM(CASE WHEN inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31' THEN basevalue ELSE 0 END) total2
FROM salestrans
GROUP BY inv_account
推荐阅读
- git - 如何检查确切的 Windows git 凭据管理器有效?
- python - 合并数据框并获得额外的行。(蟒蛇/熊猫)
- linux-kernel - 将 Linux DMA 分配限制在特定范围内
- javascript - 子菜单级别无法正常工作 Vanilla JS
- docker - 为什么 docker-compose 运行相同的命令并使用错误的 Dockerfile?
- ios - 活动视图控制器未显示整个弹出窗口
- python - 如何制作一个在消息中说明日期的不和谐命令?
- numpy - NumPy Tensordot 轴=2
- web-scraping - 当父母相似但不一样时如何刮
- javascript - 如何在 Google Apps 脚本中修复或调整此查找和替换