人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

一ヶ月毎の在庫数を抽出したテーブル1,2,3にそれぞれ商品名、JANコード、在庫数というフィールドがあるとします(レコード数はそれぞれバラバラとします。)テーブル1にある商品名のフィールドを基準とし、その商品の在庫数の推移をクエリでつくりたいのですが、その辺のリレーションの作り方がわかりません。完成のイメージとしてはフィールドはテーブル1の商品名、JAN、在庫数、テーブル2の在庫数、テーブル3の在庫数という感じです。よろしくお願い致します。

●質問者: hac20380
●カテゴリ:コンピュータ
✍キーワード:JANコード イメージ クエリ フィールド リレーション
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

月別にテーブルが分かれているのはどうなのか?

という疑問は無い事も無いのですが、

SELECT * FROM
  ( SELECT 商品名,JAN,在庫数 AS 'A月在庫' FROM テーブル1 ) as tbl_A
 LEFT JION
 ( SELECT 商品名,在庫数 AS 'B月在庫' FROM テーブル2 ) as tbl_B USING ( 商品名 )
 LEFT JOIN
 ( SELECT 商品名,在庫数 AS 'C月在庫' FROM テーブル2 ) as tbl_C USING ( 商品名 )
 ORDER BY 商品名

な感じでしょうか?


2 ● fangoln
●35ポイント

SQLの種別がなかったので、MSSQLServer2000で動くものを作ってみました。

(過去履歴からすると、Access(JET)でしょうか?)

テーブル1に存在してテーブル2,3に存在しない商品の在庫数は、0になるようにしています。


SELECT テーブル1.商品名, テーブル1.JANコード, テーブル1.在庫数, 
 IsNull(テーブル2.在庫数, 0) AS テーブル2の在庫数, 
 IsNull(テーブル3.在庫数, 0) AS テーブル3の在庫数
FROM (テーブル1 
 LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名) 
 LEFT JOIN テーブル3 ON テーブル1.商品名 = テーブル3.商品名
ORDER BY テーブル1.商品名

Access(JET)の場合には、「IsNull(テーブル2.在庫数, 0)」の代わりに「IIF(ISNULL(テーブル2.在庫数), 0, テーブル2.在庫数)」と置き換えてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ