次のデータ行を持つテーブルがあります。1つのSQL Serverテーブル内の別の行と行の比較
EngID Tower Billing Amt
100 ICS Y 5000
100 EDT Y 7777
100 ICS N 2000
と私はタワー&工学IDと課金の基準に基づいて、適切な列(請求され請求されたりしません)に入れ量によって連結される結果がセットします。しかし
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)
:私は、以下のクエリを使用して、結果セットの最初の行を取得することができるよ
EngID Tower Inv Amt (Amt when Billing = Y) Non-Invoiced Amt (Billing=N)
100 ICS 5000 2000
100 EDT 7777
:だから、以下の最終的な結果セットは、上記の表のためにどのように見えるべきかであります、2番目の行の結果を得るために苦労します。私の計画は、2つの行を2つの別々のクエリで取得し、結果を結合するために結合を行うことです。
「gdf.dbo」とはどういう意味ですか? –
これは、SQL Serverで使用される3つの名前を付ける命名規則です。 –