我有一個包含以下行數據的表。將行與單個SQL Server中的另一行進行比較表
EngID Tower Billing Amt
100 ICS Y 5000
100 EDT Y 7777
100 ICS N 2000
和我想要的結果設置爲通過塔&主機ID和投入相應的列的數量被合併基於結算標準(發票金額或不開發票)。所以,下面是最終的結果集應該是什麼樣子的上表:
EngID Tower Inv Amt (Amt when Billing = Y) Non-Invoiced Amt (Billing=N)
100 ICS 5000 2000
100 EDT 7777
我能夠得到的結果通過使用下面的查詢中設置的第1行:
Select Temp1.Tower, Temp1. EngID, Temp2.InvoiceAmt as [Inv Amt], Temp1.InvoiceAmt AS [Non-Invoiced Amt] from
(
SELECT EngID, TOWER,BILLING, InvoiceAmt,RANK() OVER (PARTITION BY EngID, TOWER ORDER BY BILLING) AS RNK
FROM [GDF].[dbo].[Sample] ) Temp1 INNER JOIN (SELECT EngID, TOWER,Billing,InvoiceAmt, RANK() OVER (PARTITION BY EngID, TOWER ORDER BY BILLING) AS RNK
FROM [GDF].[dbo].[Sample]) Temp2 ON
Temp1.EngID = Temp2.EngID
AND (Temp1.Tower = Temp2.Tower AND Temp1.Billing < Temp2.Billing)
然而,努力獲得第二排結果。我的計劃是通過兩個單獨的查詢獲得兩行,然後進行聯合以合併結果。
這是什麼'gdf.dbo'是什麼意思? –
這是SQL Server中使用的三分命名約定。 –