MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[1019]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(1019番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
棚卸日以降の売上と仕入を集計したい

Date: Thu, 7 Mar 2002 18:57:54 +0900
From: 高城 剛映 <who@example.co.jp>


いつもお世話になります。高城といいます。よろしくお願いします。

現在庫の算出方法で割とよくありそうなSQLだと思うのですがいい考えが浮ばず
質問させていただきました。

商品マスタに棚卸日付と数量をもち売上トランから売上数を、
仕入トランから仕入数を「棚卸日付」以降をそれぞれ合計して
商品マスタにくっつけて出力したいのですが棚卸日付は商品ごとに違うので
うまくいきません。別々にやってUNIONでつなげるしかないのでしょうか?
商品マスタ、仕入トラン、売上トランが非常に多くUNIONってどうも遅いような
気がして心配です。

T_商品
商品ID,棚卸日,棚卸数
1001,2002/01/15,100
1002,2002/01/22,200

T_売上
伝票NO,売上日,商品ID,売上数
1,2002/01/10,1001,10
2,2002/01/10,1002,20
3,2002/01/20,1001,11
4,2002/01/20,1002,21
5,2002/01/30,1001,12
6,2002/01/30,1002,22

T_仕入
伝票NO,仕入日,商品ID,仕入数
1,2002/01/05,1001,5
2,2002/01/05,1002,10
3,2002/01/21,1001,7
4,2002/01/21,1002,13
5,2002/01/25,1001,9
6,2002/01/25,1002,16

というテーブルがあり2002/02/01時点での現在庫を知りたい時に

1001は棚卸が2002/01/15なので
100-(11+12)+(7+9)=93

1002は棚卸が2002/01/22なので
200-(22)+(16)=194

という形にしたいのですがうまくいきません。
SQLはこんな感じです。

SELECT 商品ID,棚卸日,棚卸数,SUM(売上数),SUM(仕入数)
FROM T_商品,T_売上,T_仕入
WHERE T_商品.商品ID=T_売上.商品ID AND T_商品.商品ID=T_仕入.商品ID
AND T_商品.棚卸日<T_売上.売上日 AND T_商品.棚卸日<T_仕入.仕入日
GROUP BY 商品ID

実際は枝番などもありもっと複雑なのですが最低限の再現性の有るデータにしまし
た。
売上日と仕入日のところが問題だと思うのですがいい方法が思い浮びません。

よろしくお願いします。

=================================
〒103-0023
東京都中央区日本橋本町3-8-4
第2東硝ビル8F
(株)TBCスキヤツト
高城剛映<who@example.co.jp>
TEL.03-5623-9670 FAX.03-5623-9687
=================================




[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。