5
IDでグループ化された異なるクライアントの2つのテーブルの最終残高を比較する必要があります。テーブルには同じIDがありますが、1つは複数のIDエントリを持ち、もう1つはIDエントリを持ちません。私は複数のエントリを持つテーブルから行を合計する必要があるので、計算を行うには最終的な数値が1つしかありません。共通テーブル式で2つのデータフィールドをグループ化する方法
私はこれを多く行うクエリを持っていますが、今は月単位でグループ化する必要があります。私の現在のクエリは、すべての日付でそれを合計します。実際にIDごとおよび月ごとにデータをソートする必要があるため、各IDの月末残高を把握する必要があります。これまで私が行ったことでこれを行う方法はありますか?
ありがとうございます。
これはこれまで私が行ってきたことです。
-- Data setup
CREATE TABLE [Table1]
(
[ID] INT,
[cost] INT,
[traceNumber] INT,
[TheDate] DATE
)
INSERT [Table1]
VALUES (1, 200, 1001, '9/07/2011'),
(1, -20, 1002, '9/08/2011'),
(1, 130, 1003, '10/10/2011'),
(2, 300, 1005, '10/10/2011')
CREATE TABLE [Table2]
(
[ID] INT,
[cost] INT
)
INSERT [Table2]
VALUES (1, 200),
(2, 300)
-- Query
;WITH [cteTable1Sum] AS
(
SELECT [ID], SUM([cost]) AS [cost]
FROM [Table1]
GROUP BY [ID]
)
SELECT [Table1].[ID],
[Table1].[TheDate],
[Table1].[traceNumber],
[Table1].[cost] AS [Frost_Balance],
cte.[cost] AS [SUM_Frost_Balance],
[Table2].[cost] AS [Ternean_Balance],
cte.[cost] - [Table2].[cost] AS [Ending_Balance]
FROM [Table1]
INNER JOIN [Table2]
ON [Table1].[ID] = [Table2].[ID]
INNER JOIN [cteTable1Sum] cte
ON [Table1].[ID] = cte.[ID]
私はこれを試して、間違った答えを得ます。
WITH [cteTable1Sum] AS
(SELECT [ID], SUM([cost])
AS [cost] FROM [Table1]
GROUP BY [ID], [TheDate])
JNKさん、ありがとうございました。 – user973671