2017-07-13 3 views
0

SQL Server 2014: 行の月と前月の差に基づいて計算された列を追加することを検討しています。 IDのみ(ピボットテーブルのようなもの)。それは動的である必要があります。SQL Server - ユーザーIDで月間のギャップに基づいてデータを塗りつぶした計算列を追加

必要な計算列: $ 174.00(エージェント= 1004、月= 3) - 私は多くのことを説明するスクリーンショットを追加しました$ 164.00(エージェント= 1004、月= 2)

PIVOT table

ありがとうございました!

+0

だから何が問題なのですか? –

+0

プレビューまたはそれ以前? – KtX2SkD

+0

使用しているSQL Serverのバージョンはどれですか? –

答えて

0

これは、あなたが(私はあなたのスキーマ想定することができ、悲しいこと)を提供している必要があります。

CREATE TABLE #TESTJACK(Id int, SomeMonth int, Balance int) 
INSERT INTO #TESTJACK VALUES (1001, 1, 385) 
INSERT INTO #TESTJACK VALUES (1002, 1, 986) 
INSERT INTO #TESTJACK VALUES (1001, 2, 157) 
INSERT INTO #TESTJACK VALUES (1001, 3, 587) 
INSERT INTO #TESTJACK VALUES (1002, 3, 321) 
DROP TABLE #TESTJACK 

これを、提供されたスキーマのために、SQLでのExcelファイルの動作を複製するようです

SELECT TJ2.Id, TJ2.SomeMonth, TJ1.SomeMonth, TJ2.Balance, TJ1.Balance, TJ2.Balance - TJ1.Balance AS Diff 
FROM #TESTJACK AS TJ2 
LEFT JOIN #TESTJACK AS TJ1 ON TJ1.Id = TJ2.Id AND TJ1.SomeMonth = TJ2.SomeMonth - 1 
ORDER BY TJ2.SomeMonth, TJ2.Id 

ISNULLを使用して、Diffのようないくつかのエイリアスを入れて、あなたが保持したいまたは殺すべき列を示してください。

+1

あなたは正しいと思います!ありがとうございました! :O –

関連する問題