SQL将值从多行写入单个结果

时间:2016-02-24 19:36:18

标签: sql

我有一个表,我需要从中提取数据,我们称之为AUDITHISTORY。每次进行更改时,都会像这样写入此表:

IDNum FieldUpdated OldValue NewValue Updatetime
1 urgency Medium High DATETIME1
1 urgency High Medium DATETIME2
2 urgency Medium High DATETIME1
2 urgency High Medium DATETIME2

我正在尝试编写一个select语句来放置这样的数据:

IDNum StartTime StopTime Difference
1 DATETIME1 DATETIME2 DATETIME2-DATETIME1
2 DATETIME1 DATETIME2 DATETIME2-DATETIME1

...用于在给定时间范围内出现的所有事件。我有一个脚本,每个“IDNUM”显示两行,我无法正确分组。

1 个答案:

答案 0 :(得分:1)

只要DATETIME2总是大于DATETIME1,这应该有效;

SELECT IDNum, MIN(Updatetime) DATETIME1,
              MAX(Updatetime) DATETIME2,
              MAX(Updatetime) - MIN(Updatetime) Difference
FROM AUDITHISTORY
GROUP BY IDNum

差异(即减去两个日期时间的结果)对于所有RDBMS都不相同,因此您可能希望使用更具数据库的方法来获取您喜欢的格式。