私は基本的に、請求書の出入りを記録するトランザクション テーブルを作成しました。販売 (=1) と購入 (=2) のフラグがあります。
月ごとの売上と購入を計算する単純な SQL が必要です。問題は、グループからトランザクション タイプ (mybooks_trans_class_id_fk) を削除しても機能しないことですが、それを結果に残したままにしておくと、私が望むものではありません。
SQL:
SELECT
DATEPART(Year, mybooks_trans_transaction_datetime) as 'sales_year',
DATEPART(Month, mybooks_trans_transaction_datetime) as 'sales_month',
case
when cast( mybooks_trans_class_id_fk as nvarchar(100))!='1' then cast(sum(mybooks_trans_gross_amount) as nvarchar(100))
else '0'
end as total_sales,
case
when cast( mybooks_trans_class_id_fk as nvarchar(100))!='2' then cast(sum(mybooks_trans_gross_amount) as nvarchar(100))
else '0'
end as total_purchases
from view_mybooks_transactions_all_details
GROUP BY DATEPART(Year, mybooks_trans_transaction_datetime),
DATEPART(MM, mybooks_trans_transaction_datetime),mybooks_trans_class_id_fk
結果は次のとおりです。
2012 11 0 15300.00
2012 12 0 2500.00
2013 1 0 1300.00
2013 1 600.00 0
2013 2 0 2750.00
2013 2 1500.00 0
しかし、たとえば月1を1行だけにしたいので、必要な結果は
2012 11 0 15300.00
2012 12 0 2500.00
2013 1 600.00 1300.00
2013 2 1500.00 2750.00
助言がありますか?私のSQL能力はせいぜい中程度です!