SQL 从多个唯一 ID 中提取前 1 个并合并
SQL Pull Top 1 of many Unique IDs and Combine
您好,我正在尝试在 SSMS 中使用 SQL 查询合并 2 SQL table。第一个只是直接从 table 中提取 4 列,每个 ID# 有 1 个条目。第二个是历史变化 table,我需要第一次将项目更改为所有唯一 ID# 的特定状态。
感谢所有受访者。
我有:
CurrentView
ID Create Resolve Effort
1234 1/10/2017 1/10/2017 5
1235 1/11/2017 1/11/2017 8
1236 1/12/2017 1/12/2017 25
1278 1/13/2017 1/13/2017 34
1347 1/14/2017 1/14/2017 76
HistoryView
ID Status Timestamp
1234 prep 12:01
1234 working 13:01
1234 working 14:01
1235 prep 3:05
1235 working 4:05
1235 working 5:05
我需要的:
ID Create Resolve Effort First time set to Working
1234 1/10/2017 1/10/2017 5 13:01
1235 1/11/2017 1/11/2017 8 4:05
1236 1/12/2017 1/12/2017 25 8:07
1278 1/13/2017 1/13/2017 34 11:45
1347 1/14/2017 1/14/2017 76 5:45
一个非常简单的方法是:
SELECT
c.*,
(SELECT MIN([timestamp]) FROM HistoryView h
WHERE h.id = c.id and h.status = 'working') as "First time"
FROM
CurrentView
WHERE ...
PS。未经测试。您可能无法使用名为 "timestamp" 的列,因为它是一个保留字。
您好,我正在尝试在 SSMS 中使用 SQL 查询合并 2 SQL table。第一个只是直接从 table 中提取 4 列,每个 ID# 有 1 个条目。第二个是历史变化 table,我需要第一次将项目更改为所有唯一 ID# 的特定状态。
感谢所有受访者。
我有:
CurrentView
ID Create Resolve Effort
1234 1/10/2017 1/10/2017 5
1235 1/11/2017 1/11/2017 8
1236 1/12/2017 1/12/2017 25
1278 1/13/2017 1/13/2017 34
1347 1/14/2017 1/14/2017 76
HistoryView
ID Status Timestamp
1234 prep 12:01
1234 working 13:01
1234 working 14:01
1235 prep 3:05
1235 working 4:05
1235 working 5:05
我需要的:
ID Create Resolve Effort First time set to Working
1234 1/10/2017 1/10/2017 5 13:01
1235 1/11/2017 1/11/2017 8 4:05
1236 1/12/2017 1/12/2017 25 8:07
1278 1/13/2017 1/13/2017 34 11:45
1347 1/14/2017 1/14/2017 76 5:45
一个非常简单的方法是:
SELECT
c.*,
(SELECT MIN([timestamp]) FROM HistoryView h
WHERE h.id = c.id and h.status = 'working') as "First time"
FROM
CurrentView
WHERE ...
PS。未经测试。您可能无法使用名为 "timestamp" 的列,因为它是一个保留字。