sql - 如何使用 SQL 求和?
问题描述
我有 2 张桌子:
表格1:
Project_Name Start Date
P-2018-001 2018/06/20
P-2018-002 2018/06/21
P-2018-003 2018/06/22
表 2:
Date Project_Name Staff Working_Time
2018/06/20 P-2018-001 Staff01 8
2018/06/20 P-2018-002 Staff02 6
2018/06/21 P-2018-001 Staff03 9
2018/06/21 P-2018-003 Staff02 8
2018/06/21 P-2018-002 Staff01 9
2018/06/22 P-2018-003 Staff03 5
2018/06/22 P-2018-002 Staff01 7
2018/06/22 P-2018-001 Staff02 10
预期输出:
Project_Name Start Date Staff01 Staff02 Staff03
P-2018-001 2018/06/20 8 10 9
P-2018-002 2018/06/21 16 6 0
P-2018-003 2018/06/22 0 8 5
我怎样才能得到这个?
解决方案
这看起来像聚合和join
:
select t2.project_name, t1.start_date,
max(case when t2.Staff = 'Staff01' then t2.working_time else 0 end) as Staff01,
max(case when t2.Staff = 'Staff02' then t2.working_time else 0 end) as Staff02,
max(case when t2.Staff = 'Staff03' then t2.working_time else 0 end) as Staff03
from table2 t2 join
table1 t1
on t1.project_name = t1.project_name
group by t2.project_name, t1.start_date;
推荐阅读
- r - 如何用R中的条件语句替换行值
- angular - 在某些路由上使用全屏(即没有页眉和页脚)的角度路由器设置
- html - 如何通过 CSS 更改 Web 应用程序的颜色主题?
- javascript - 如何让 css 代码运行一段时间?
- c# - 如何在 IApplicationBuilder 的扩展方法中访问自定义设置
- python - 更新最新的 PySide 后 Pyinstaller 错误
- python - 有没有一种有效的方法来搜索一个列表,另一个列表维护列表的顺序?
- java - 似乎 spring-boot 开始两次开发 Web 应用程序
- javascript - '价值未定义的属性' - 如何修复未定义的道具?
- python - 如何使用仅包含 pyc 文件的 PyPy2 运行 Python 包?