我發現了一些與我需要的東西類似的東西,但我無法圍繞如何將它帶到需要的地方。SQL Dynamic Pivot without aggregate
這有助於確定的:simple(?) PIVOT without an aggregate
這裏是我當前的查詢:
SELECT [1] AS Lien1
,[2] AS Lien2
,[3] AS Lien3
,[4] AS Lien4
,[5] AS Lien5
,[6] AS Lien6
FROM (SELECT lt.Name AS [LienName]
-- ,LienID
,ROW_NUMBER() OVER (ORDER BY LienID) AS RN
FROM dbo.Lien AS L
INNER JOIN dbo.LienType AS LT ON LT.LienTypeID = L.LienTypeID
WHERE FileID = 528267
) AS PivotSource PIVOT
(MAX(LienName) FOR RN IN ([1], [2], [3], [4], [5], [6])) piv
它返回的結果如下:
Lien1 Lien2 Lien3 Lien4 Lien5 Lien6
Deed of Trust Assignment Appointment of Substitute Trustee Assignment Assignment Civil Foreclosure Case
我需要commente d行( - LienID)不會被註釋掉,並在相應的LienName之後返回LienID,例如(爲了格式化目的,我刪除了最後四列)。
Lien1 LienID Lien2 LienID
Deed of Trust 123 Assignment 234
也許Pivot是不能做到這一點的最好辦法,但它是我迄今發現的最好的。我有5個表返回多行,我需要返回一行上的所有值。我一直在嘗試理解這裏的動態SQL數據透視問題,但是我一直無法執行一個來執行我需要執行的方式。
我接受任何和所有的建議,這將有助於 - 在此先感謝您的時間!
編輯:14年11月4日@ 10:47AM
我想回來,並張貼在正在進行的工作,因爲我已經把這個答案到了一些動態查詢的內容。
DECLARE @FileID INT = 528267
DECLARE @Cols NVARCHAR(MAX)
DECLARE @query NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME('LienNumber' + CONVERT(VARCHAR, ROW_NUMBER() OVER (ORDER BY SortOrder)))
FROM dbo.Lien AS L
INNER JOIN dbo.LienType AS LT ON LT.LienTypeID = L.LienTypeID
INNER JOIN dbo.FileActions AS FA ON fa.FileID = l.FileID
AND fa.ActionDefID = 1184
AND fa.SentDate IS NOT NULL
AND fa.ReceivedDate IS NULL
AND fa.FileID = @FileID
FOR XML PATH('')
,TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SET @Query = 'DECLARE @FileID INT = 528267 SELECT ' + @cols + '
FROM (select lt.name as Name, ''LienNumber'' + CONVERT(VARCHAR, ROW_NUMBER() OVER (ORDER BY SortOrder)) as RN
FROM
dbo.Lien AS L
INNER JOIN dbo.LienType AS LT ON LT.LienTypeID = L.LienTypeID
INNER JOIN dbo.FileActions AS FA ON fa.FileID = l.FileID
AND fa.ActionDefID = 1184
AND fa.SentDate IS NOT NULL
AND fa.ReceivedDate IS NULL
AND fa.FileID = @FileID
) x
pivot ( MAX(name) FOR RN IN (' + @Cols + ')) p'
EXEC (@query)
的幫助下:Convert Rows to columns using 'Pivot' in SQL Server
當你說_return的LienID相應LienName._之後是什麼意思?結果應該是什麼樣子? – jpw 2014-11-03 21:56:06
剛剛發佈 - 謝謝! – 2014-11-03 23:34:02
呵呵,你能在sqlfiddle上設置一組樣本數據嗎?我有這個想法應該可以工作,但是在編輯我的答案之前,我希望有一個實時引擎來測試。 – 2014-11-03 23:37:39