0
に行を変換することにより、サブクエリ内の集約関数を実行する必要がありここで入力テーブルです:ここでは「優秀」アカウントが列
accountnumber year quarter catgeory owedamt payedamt writeoffamt
101 2001 1 Tax 130.0 0.0 30.0
101 2001 1 Interest 130.0 30.0 30.0
101 2001 2 Interest 120.0 20.0 20.0
102 2002 1 Interest 120.0 100.0 20.0
102 2002 2 Tax 110.0 100.0 10.0
出力
accountnumber year quarter Tax (outstanding) Interest (outstanding)
101 2001 1 100.0 70.0
101 2001 2 0.0 80.0
102 2002 2 10.0 0.0
は(合計に基づいてcaluclatedさOWED_AMT - (PAID_AMT + WRITEOFF_AMT))卓越した数値
注:税金と利息として列を持つ必要がありますが、これらの列の金額はt彼は上記の式に基づいています。
注2:accountntumberため: - である((PAID_AMT + WRITEOFF_AMT)OWED_AMT)(120-(100 + 20))= 0.0
しかし102、(未処理)利息は
和を算出します出力は0.0
を得たので、その年のいずれかの税カテゴリと四半期を持っている私たちは同じ年、同じ四半期にゼロとして(優れた)税及び利息(発行済)の両方を持っている場合、我々は
その行をスキップすることができますいけません私が使用しているクエリは:
私はここで取得していますwith summaryData (accountnumber ,
year ,
quarter, tax, interest) as
(
SELECT accountnumber ,
year ,
quarter ,
SUM(CASE WHEN catgeory = 'Tax' THEN sum(OWED_AMT - (PAID_AMT + WRITEOFF_AMT))
ELSE 0
END),
SUM(CASE WHEN catgeory = 'Interest' THEN sum(OWED_AMT - (PAID_AMT + WRITEOFF_AMT))
ELSE 0
END)
FROM acccount
GROUP BY accountnumber ,
year ,
quarter
)
select * from summaryData
where tax > 0 or interest > 0;
エラーは次のとおりです。あなたは、CTEでネストされた集計を
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.