0
我是Transact SQL新手(SQL Server 2008)。按周丟失值的T-SQL數據透視表
我有,當我按日期範圍搜索值即得到這些結果的數據透視表:
Person | 2/10/14 | 2/18/14
-----------+---------+---------
Jane Doe | NULL | QRS
June Jones | NULL | XYZ
Tom Smith | XYZ | HIK
但我需要它看起來像這樣,在六月瓊斯有一個值2/10/14:
Person | 2/10/14 | 2/17/14
-----------+---------+--------
Jane Doe | NULL | QRS
June Jones | XYZ | XYZ
Tom Smith | XYZ | HIK
的問題是,六月瓊斯具有具有14年2月11日一start_dt和的14年2月21日END_DATE應是在列「14年2月10日」和XYZ事件我的查詢似乎缺少它。 '2/17/14'欄目正在收集活動。
我的代碼:
WITH Numbers AS
(
SELECT '2/10/14' As n
UNION
SELECT '2/17/14' As n
) ,
Counted AS
(
SELECT s.[FirstName] + ' ' + s.[LastName] AS [Person],
CASE WHEN s.[Event] = 'Thing1' THEN 'HIK'
WHEN s.[Event] = 'Thing2' THEN 'QRS'
WHEN s.[Event] = 'Thing3' THEN 'XYZ'
ELSE NULL END AS [Info],
N.n AS DateWeek
FROM [dbo].[MyTable] s
INNER JOIN Numbers N ON DATEADD(DD,5,N.n) BETWEEN s.start_dt AND s.end_dt
WHERE s.LastName in ('Doe', 'Jones', 'Smith')
GROUP BY s.[FirstName] + ', ' + s.[LastName], s.[Info], N.n
)
SELECT [Person], '02/10/14', '2/17/14'
FROM Counted
PIVOT (MAX(Info) FOR DateWeek IN ([2/10/14], [2/17/14]))
AS PVT
我可能失去了一些東西很明顯,但無法看到它。
請修改您的問題並顯示原始數據。 –
你需要看什麼?這是關於它的。我不得不剝奪很多機密數據。對於數據透視表,我還有很多周,但是如果有幫助的話,它們都以星期一的日期開始。事件的start_dt都是從星期一的日期開始的。這個在2/11/14有一個start_dt的特定的一次性從星期二開始。這有幫助嗎? – user1804209
如果您不能爲我們提供'[MyTable]'的'INSERT'語句,那麼當您在沒有主鍵的情況下執行時,您可以給我們輸出嗎?即與替換最後四行'SELECT * FROM Counted' –