【问题标题】:SQL Server 2008 AggregationSQL Server 2008 聚合
【发布时间】:2014-01-23 19:49:32
【问题描述】:

试图找出下表集的聚合。对于 Dept 的每次更改,我都想为该 ID 列汇总工资。我还想将开始时间和结束时间合并为每个 ID 一行。

我得到了什么:

ID#    Dept   StartTime     EndTime    Wages
545    A        12:00        1:30       $50
545    A        1:30         3:00       $55
657    A        12:00        3:00       $100
657    B        3:00         6:00       $100
657    B        6:00         7:00       $50

我想要的样子:

ID#    Dept   StartTime     EndTime    Wages
545    A        12:00        3:00       $105
657    A        12:00        3:00       $100
657    B        3:00         7:00       $150

【问题讨论】:

  • 如果时间与您的示例数据中的时间不完全匹配怎么办?

标签: sql sql-server group-by max


【解决方案1】:

你需要的是这样的(假设你的工资保存为int

SELECT ID, Dept, 
    MIN(StartTime) [StartTime],
    MAX(EndTime) [EndTime],
    SUM(Wages) [Wages]
FROM Table 
GROUP BY ID, Dept

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-27
    • 2012-02-20
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多