私が必要としていることが可能かどうかは確かではありません。参加している2つのテーブルがあります.1つはアイテムのリストで、もう1つは指定された日付のアイテムの動きがあったときです。動作はトータライザによって指定されます。この例では、1 =購入済み、2 =売却済み、3 =調整済です。これまでのコーディングでは、各トータライザの行が分かれています。私は行を各項目ごとに1つにまとめる必要があります。SQLが行を列に変換する
SELECT [Totalizer]=COALESCE(t2.[F1034],0)
,[UPC]=t1.[F01]
,[QTY]=sum(coalesce(t2.[F64],0))
,[Total Amount]=sum(COALESCE(t2.[F65],0))
FROM [STORESQL].[dbo].[COST_TAB] t1
LEFT OUTER JOIN [STORESQL].[dbo].[RPT_ITM_D] t2
ON t1.F01=t2.F01 AND (F254='2011-10-1') and (F1034=1 or F1034=2 or F1034=3)
group by t1.F01,F1034
order by t1.F01
COST_TABテーブルの構成は次のとおりです。
UPC
1
2
3
4
RPT_ITM_Dは、アイテムの動きで構成されています
UPC Date Totalizer QTY Total Amount
1 2011-10-1 1 1 9.00
1 2011-10-1 2 1 9.99
2 2011-10-1 1 2 6.00
2 2011-10-1 2 1 3.99
2 2011-10-1 3 1 3.00
3 2011-10-1 1 1 1.00
4 2011-10-1 0 0 0.00
私は:
UPC Date Totalizer QTY Total Amount
1 2011-10-1 1 1 9.00
1 2011-10-1 2 1 9.99
2 2011-10-1 1 2 6.00
2 2011-10-1 2 1 3.99
2 2011-10-1 3 1 3.00
3 2011-10-1 1 1 1.00
SQLコードの私が今につながる持っています結果を得るためにそれが必要です:
UPC Date Purchased AMT Sold AMT Adjusted AMT
1 2011-10-1 1 9.00 1 9.99 0 0.00
2 2011-10-1 2 6.00 1 3.99 1 3.00
3 2011-10-1 1 1.00 0 0.00 0 0.00
4 2011-10-1 0 0.00 0 0.00 0 0.00
私はおそらく完全に私の列を手直しする必要があります実現が、私はここで開始するか分からない、あるいは私もそれを行うことができます。
F1034、F64、F65という名前のフィールドはありますか?私はそれらがあなたの文脈の中で有意義であることを願っています。洞窟にはまったく見られないdbaのデザイン哲学ではありません。 –
それはいくつかの小売組織の方法です。私たちの店舗データベースはそれを使用しています..それはほとんどの時間PITAです。 –