使用 SQL Server 的 SQL 新手。我有一个查询可以提取我们对一组客户执行分析所需的所有信息,但根据系统的设置方式,目前需要在数据变得有用之前在 excel 中手动清理。
有些 Job ID 以 S 结尾,但当我们进行分析时,我们将 Job ID 视为一个整体,不得不花费大量时间在 excel 中手动将数据组合在一起。
示例查询结果
JOB ID LABOR EXPENSE DIRECT MATERIAL
10067 400395.29 96614.25
10067S 143668 44148.22
10068 545100.79 127143.64
10068S 147009.89 33506.31
我想做的是,当查询运行时,将 Job ID
中带有 S 的行合并到没有 S 的行中,这样我们就可以为每个作业获取一行数据。
例子
Job ID LABOR EXPENSE DIRECT MATERIAL
10067 544063.29 140762.47
10068 692110.68 160649.95
有没有人知道我可以如何改变我的查询来完成这个?
最佳答案
试试这个:
select replace( Job_Id, 'S', '' ) as "JOB ID",
sum (LABOR_EXPENSE) as "LABOR EXPENSE",
sum (DIRECT_MATERIAL) as "DIRECT MATERIAL"
from yourTable
group by replace( Job_Id, 'S', '' )
order by replace( Job_Id, 'S', '' )
请记住相应地更改列,因为它可能没有用空格定义,甚至不像我建议的那样用下划线定义。
关于sql - 在 SQL Server 中根据作业 ID 组合行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281277/