0
複数のステップで何かを計算するためにCTEを使用していますが、[値]の値がゼロの行を保存する際に問題があります。ここに私のコードです:SQL - CTEを連鎖するときにゼロが削除される
sum_values
AS (
SELECT SUM([Value]) AS [Value]
, [Situation]
, [Category 3]
, [Category 2]
FROM #temp
GROUP BY [Situation]
, [Category 3]
, [Category 2]
),
rank_sums
AS (
SELECT ROW_NUMBER() OVER(PARTITION BY [Category 3]
, [Category 2] ORDER BY [Value]) AS [row]
, [Category 3]
, [Category 2]
, [Value]
--FROM #temp), -- Taking from the temp table preserves the zero-rows.
FROM sum_values), -- Taking from the previous CTE does not.
あなたは上記の私のコメントからわかるように、それはCTEから値を取るとき、それは一時テーブルから値を取るではなく、正しくrank_sums CTE機能。ここで私は2つのバージョンからの出力の種類を取得しています
一時テーブルから取っ:
row Category 3 Category 2 Value
1 C A -6
2 D A -4
3 E B 0
4 F B 1
5 G B 3
は、CTEから取っ:
row Category 3 Category 2 Value
1 C A -6
2 D A -4
3 F B 1
4 G B 3
5 H B 4
は誰でも経験がこれを固定していませんバグ?
お返事ありがとうございます。私が最初に入力した結果表は正しくないので、バグは別のものかもしれません。 'sum_values'の' SELECT'部分を実行するだけで、Value = 0の行が得られます。 – cxm