0
私は売り上げを記録するテーブルを持っており、各アイテムに課税された税額に関するレポートが必要です。基本的なルールは4月1日が.52%の税金を納める前にすべての売上です。その日以降のすべての売上には0.5%の税があります。SQL Server:日付別に異なる乗数を適用する
私は、これは次のクエリを使用して取得しようとしている
select ItemCode,
sum(Quantity) QuantitySold,
WhsCode as Store,
case when (docdate < '20170401') then sum(Quantity * .0052) else sum(Quantity * .005) end as Tax
from SalesTable
group by whscode,
itemcode
は、しかし、私はそれが いずれかの集計に含まれていないため
DocDateは、」選択リストでは無効になってしまいます関数またはGROUP BY句を使用します。
私はそれをそのまま実行するとエラーが発生します。 DocDateをgroup by節に追加すると、重複が混乱します(一例として、185行から1508行になりました)。
SQLは、条件文がGroup句に含まれていない文、または別のものを使用する必要がある文をWHEN
文で使用することを許可していませんか?
あなたの代わりに数量 'の売上高合計の' quantity' * price'に税を適用していることを奇妙です。私はそれが間違っていると言っているわけではない、それはちょうどそのように書かれて見て奇妙に思える。 – SqlZim
おっと、そうです、品物別に異なる税金が混じっています - それは数量ではなく価格でなければなりません。 – ConnorU