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

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

Date: Sat, 9 Mar 2002 18:28:03 +0900
From: "奥田 晃弘" <who@example.com>


高城さん今日は、奥田と申します。
先ほどのレスを一部訂正します。
2箇所のINNER JOINをLEFT JOINに変更します。

得意の「愚直」で書くとこうなります。
当然もっとスマートな書き方があると思いますが、レスが無いようなので。。。

SELECT T_C.商品ID,T_C.棚卸日,T_C.棚卸数,T_D.売上合計,T_D.仕入合計
FROM
    (SELECT T_A.商品ID,T_A.売上合計,T_B.仕入合計
    FROM((SELECT T_商品.商品ID,SUM(T_売上.売上数) AS 売上合計
              FROM T_商品 LEFT JOIN T_売上
              ON T_商品.商品ID=T_売上.商品ID
              WHERE T_商品.棚卸日< T_売上.売上日 GROUP BY T_商品.商品ID
             ) AS T_A
    INNER JOIN
             (SELECT T_商品.商品ID,SUM(T_仕入.仕入数) AS 仕入合計
             FROM T_商品 LEFT JOIN T_仕入
             ON T_商品.商品ID=T_仕入.商品ID
             WHERE T_商品.棚卸日<T_仕入.仕入日 GROUP BY T_商品.商品ID
             ) AS T_B
    ON T_A.商品ID=T_B.商品ID)) AS T_D
INNER JOIN
    (SELECT T_商品.商品ID,T_商品.棚卸日,T_商品.棚卸数
    FROM T_商品) AS T_C
ON T_D.商品ID=T_C.商品ID

> -----Original Message-----
>
> 商品マスタに棚卸日付と数量をもち売上トランから売上数を、
> 仕入トランから仕入数を「棚卸日付」以降をそれぞれ合計して
> 商品マスタにくっつけて出力したいのですが棚卸日付は商品ごとに違うので
> うまくいきません。別々にやって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時点での現在庫を知りたい時に
>
> 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
>
>



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


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

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

MSDE TOP ページに移動する

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