SQLについて質問があります。
あるテーブルの項目が、倉庫名、商品名、在庫数量とあった場合、
違う倉庫にある同一商品が数件あったとします。
例えば、
A倉庫 商品●● 10個
B倉庫 商品●● 20個
C倉庫 商品●● 5個
A倉庫 商品×× 3個
B倉庫 商品×× 15個
C倉庫 商品×× 0個
上記のような場合、●●商品についてはどれも在庫が1個以上
あるので通常に3件取得したいのですが、××商品はC倉庫が在庫0個です。
上記の様に0個の件数が1件でもあったら、その商品については
取得しない様なSQL式を1発で組むことは可能でしょうか?
(上記の例の場合、●●商品3件のみ取得したい)
何故、SQL初心者で初歩的な質問で申し訳ありませんが
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
(1)数量がゼロのデータが少なく、数量でNULL値を持つものがない。
(2)商品に索引が作成されている。
状況なら。
create table zaiko
(
souko char(1),
shohin nvarchar(1),
suryo int
)
create index idx_shohin on zaiko (shohin)
insert into zaiko values ( 'A', '●', 10 );
insert into zaiko values ( 'B', '●', 20 );
insert into zaiko values ( 'C', '●', 5 );
insert into zaiko values ( 'A', '×', 3 );
insert into zaiko values ( 'B', '×', 15 );
insert into zaiko values ( 'C', '×', 0 );
select * FROM ZAIKO
where zaiko.shohin
not in ( select shohin from zaiko where suryo = 0 )
という書き方が有効かも知れません。
No.2
- 回答日時:
下記の様な書き方も出来ますね。
(テーブル名は仮に「在庫」としました)SELECT * FROM 在庫 a
WHERE
NOT EXISTS (
SELECT * FROM 在庫 b WHERE a.商品名 = b.商品名 AND b.在庫数量 = 0
)
WHERE 句は「商品名が同じで在庫数量が0のデータが存在しない」という条件を表現しています。
No.1
- 回答日時:
こんばんは。
まぁ書き方はいろいろあるかと思いますが・・・、
SELECT 倉庫名, 商品名, 在庫数量
FROM テーブル A
WHERE EXISTS
(SELECT 商品名, SUM(1) AS FLAG_A, SUM(CASE WHEN 在庫数量 = 0 THEN 0 ELSE 1 END) AS FLAG_B
FROM テーブル B
WHERE A.商品名 = B.商品名
GROUP BY 商品名
HAVING FLAG_A = FLAG_B)
とか・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 運輸業・郵便業 ●(令和なのですが…) 今時、 (倉庫会社の在庫の)倉庫管理システムが、 “紙”(商品依頼書•注文書 2 2022/08/07 18:09
- SOHO・在宅ワーク・内職 こういう求人、危ない?なぜ募集? 3 2022/12/31 09:49
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- メルカリ メリカリで規約違反により売上金を没収された 4 2022/04/09 21:40
- メルカリ メルカリShopsを作るとメルカリで販売は楽になりますか メルカリとまったく変わりませんか? 2 2022/10/11 19:22
- Excel(エクセル) 荷捌作業効率をあげるためのエクセル関数を教えてください。 8 2022/10/07 08:17
- 経済 【中国の不動産バブル崩壊は問題ないのでは?】 日本は物流倉庫の物流センター 5 2023/08/18 00:15
- その他(ネットショッピング・通販・ECサイト) ヨドバシの注文で商品は揃ってからと順次発送どちらがよいのか 3 2022/12/12 16:06
- 法学 トランクルームは、消費者から寄託を受けた家財などの物品を保管するための倉庫であるって、商法においては 3 2023/07/23 03:35
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
うまくいきません教えてくださ...
-
SQLです。こんな感じですか?あ...
-
accessで在庫管理
-
update文で改行を入れる
-
SELECT 文の NULL列は?
-
テーブルリンク リンク元を知...
-
テーブル名をカラムとして取得...
-
一つ前に戻るには…
-
Accessのテーブルデータを一気...
-
Accessでデータシートに同じデ...
-
会社の飲み会の幹事になり、座...
-
Notion@リレーション値の取得...
-
件数の多い順にselect
-
外部キーだけのテーブル(主キ...
-
SQL、2つのテーブルで条件一致...
-
男性と2人で飲食店に行きテーブ...
-
JavaScriptでAccessのテーブル...
-
「テーブルに座って……」という...
-
論理名とコメント構文(?)について
-
SQL update方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLです。こんな感じですか?あ...
-
うまくいきません教えてくださ...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
accessで在庫管理
-
サブクエリを使用せずにLEFT JO...
-
現在庫算出方法についてお教え...
-
SQL CASE文に制御について
-
access結合クエリを編集可能に
-
相関サブクエリの中で、グルー...
-
Access 出荷管理簿を作りたい...
-
SQLの作成方法
-
グループごとの最高得点者一覧...
-
update文におけるwhereとjoinの...
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
一つ前に戻るには…
-
update文で改行を入れる
おすすめ情報