プロが教える店舗&オフィスのセキュリティ対策術

結合抽出(テーブルの表示)の方法はこのままで
WHERE句にあるようなの条件を付け加え
計算も行いたいのですが、よい方法はありませんか?
どなたか、ご享受ください。


SELECT
MS.商品コード,
MS.倉庫コード,
MS.現在庫数,
ISNULL(SUM(UTP.数量),0)  T売上明細ファイル1OR4,
MS.現在庫数 + ISNULL(SUM(UTP.数量),0)  帳簿在庫
FROM
T商品別倉庫在庫 MS
LEFT JOIN
T売上明細ファイル UTP
ON
MS.倉庫コード = UTP.倉庫コード
AND
MS.商品コード = UTP.商品コード

--WHERE
--T売上明細ファイル UTP PLUS条件
--UTP.売上区分コード = 1
--OR
--UTP.売上区分コード = 4

GROUP BY
MS.商品コード,
MS.倉庫コード,
MS.現在庫数

A 回答 (2件)

集計(GROUP BY)がかかる部分を誤ってました。


以下でテストしてみてください。

SELECT
MS.商品コード,
MS.倉庫コード,
MS.現在庫数,
ISNULL(UTP.数量合計,0) T売上明細ファイル1OR4,
MS.現在庫数 + ISNULL(UTP.数量合計)  帳簿在庫
FROM T商品別倉庫在庫 MS
LEFT JOIN
(
select 商品コード, 倉庫コード,SUM(数量) 数量合計
from T売上明細ファイル
WHERE 売上区分コード = 1
OR 売上区分コード = 4
GROUP BY 商品コード, 倉庫コード
) UTP
ON MS.商品コード = UTP.商品コード
AND MS.倉庫コード = UTP.倉庫コード
order by MS.商品コード, MS.倉庫コード
;
    • good
    • 0
この回答へのお礼

うーん。なるほど難しいですね。
でもよくわかりました。
ありがとうございました。
また、機会があれば教えてください。

お礼日時:2004/07/12 23:44

Oracleだったら以下のような感じ(未テスト)


でもSQLServerなんですよね?
T売上明細ファイルを集計した結果をテーブルに見立ててトライしてみてください。
Fromのテーブルに集計結果を持ってくるところがミソ。

SELECT
MS.商品コード,
MS.倉庫コード,
MS.現在庫数 + ISNULL(UTP.10R4,0)  帳簿在庫
from T商品別倉庫在庫 MS,
(
select 倉庫コード, 商品コード, SUM(UTP.数量) 1OR4
from T売上明細ファイル
where 売上区分コード = 1
OR 売上区分コード = 4
) UTP
where MS.倉庫コード = UTP.倉庫コード(+)
AND MS.商品コード = UTP.商品コード(+)
GROUP BY
MS.商品コード,
MS.倉庫コード,
MS.帳簿在庫
;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す