0
我知道SQL Server Pivot,但是這次我想我需要更復雜的東西,然後是一個簡單的pivoted值。SQL Server:將行轉換爲一行
Here it is an SQL fiddle example.
所以我有一個表,我有最多3行一種startcity - endcity組合。
在查詢中,我需要在一行中獲得這些組合,而我只需要那些組合,其中有3行。
請指教,
我知道SQL Server Pivot,但是這次我想我需要更復雜的東西,然後是一個簡單的pivoted值。SQL Server:將行轉換爲一行
Here it is an SQL fiddle example.
所以我有一個表,我有最多3行一種startcity - endcity組合。
在查詢中,我需要在一行中獲得這些組合,而我只需要那些組合,其中有3行。
請指教,
您可以像這樣做一個交叉表。
with NumberedValues as
(
SELECT EndCity
, StartDate
, EndDate
, Price
, ROW_NUMBER() OVER(PARTITION BY StartCity, EndCIty ORDER BY StartDate) as RowNum
FROM [dbo].[BestPrice]
)
SELECT EndCity,
max(CASE WHEN RowNum = 1 THEN StartDate END) as StartDate1,
max(CASE WHEN RowNum = 1 THEN Enddate END) as EndDate1,
max(CASE WHEN RowNum = 1 THEN Price END) as Price1,
max(CASE WHEN RowNum = 2 THEN StartDate END) as StartDate2,
max(CASE WHEN RowNum = 2 THEN Enddate END) as EndDate2,
max(CASE WHEN RowNum = 2 THEN Price END) as Price2,
max(CASE WHEN RowNum = 3 THEN StartDate END) as StartDate3,
max(CASE WHEN RowNum = 3 THEN Enddate END) as EndDate3,
max(CASE WHEN RowNum = 3 THEN Price END) as Price3
FROM NumberedValues
group by EndCity
您是否擁有此表的PrimaryKey。你如何找到行之間的差異。 – adopilot 2015-01-20 22:05:56
http://sqlfiddle.com/#!3/07d1d/26 – Mihai 2015-01-20 22:17:11
我對於開始,結束城市和日期有複雜的PK。 – martonx 2015-01-20 22:21:33