select文についてお教えください。環境はAccess2003,Win XPで動かしています。
TABLE
ID(INT),STOCK(INT)
001,100
001,200
001,
002,200
002,300
002,400
003,100
上記のようなテーブル、データがあります。
■抽出したい行
001,100
001,200
■抽出条件
STOCKに空がはいっている。
STOCKに空がはいっている行は選択しない。
STOCKに空がはいっているIDで、同一IDでSTOCKにデータがある行を抜き出したいです。
どのようにSQLを組み立てればよいかわかりません。
宜しくお願い致します。
No.3
- 回答日時:
ANo.2さんの方法で可能だと思いますが、クリエ一つでやりたい場合は、
テーブルからクエリを作成して、STOCK の抽出条件に下記の式を記述
In (SELECT ID FROM TABLE WHERE STOCK Is Null) AND Is Not Null
SQLだと、
SELECT ID, STOCK FROM TABLE WHERE ID In (SELECT ID FROM TABLE WHERE STOCK Is Null) And STOK Is Not Null;
これは、ANo.1さんのSQL の = を In に変更しただけです(複数の結果を返すサブクエリに = は使えない)。
他にも、
SELECT ID, STOCK FROM TABLE INNER JOIN (SELECT DISTINCT ID FROM TABLE WHERE STOCK Is Null) WHERE STOK Is Not Null;
とか、いろいろあります。
No.2
- 回答日時:
本格的に取り組むならAccess SQLの解説本で学習。
SQL言語はメーカー製品による方言があるため他の製品とは書き方を変えなくてはならないことがあり得ます。手っ取り早く済ませるには、Accessのクエリウィザードを利用すること。
ウィザードではテーブルまたはクエリ結果テーブルとフィールドとをビジュアルに指定して、一致、差分をSQLの知識なしでも抽出するクエリが簡単に作成できます。できればAccessの解説サイトなどでクエリウィザードの使い方を学習しておくのが望ましいです。
ウィザードだと、まず当該テーブルのSTOCKフィールドの値がNULLのIDフィールドを抽出するクエリを作成。(クエリ1)
次に、ウィザードで当該テーブルのSTOCKフィールドの値がNULLでないレコードを抽出するクエリを作成。(クエリ2)
最後にウィザードで、クエリ1とクエリ2のクエリ結果テーブルを突き合わせてIDフィールドの値が一致するレコードを抽出するクエリを作成。(クエリ3)。
クエリ3を実行することで、期待した結果は得られるでしょう。
ご回答ありがとうございます!確かにクエリを複数やればできますね!私は一発でやりたかったので、No1さん、No3さんのを参考にさせていただきました!ご回答ほんとうにありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- TOEFL・TOEIC・英語検定 exchange traded fundの品詞分解についてご質問があります。 ETFとはweblio 1 2023/05/21 16:02
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクエリで1フィールドの...
-
Access2003 削除クエリで式1フ...
-
Accessクエリで特定の行を削除...
-
accessで空白の時の抽出
-
Access Left$関数で全角半角が...
-
accessレポートにwordの文...
-
差し込み文書のルールで if the...
-
MySQLでレコード単位に有効期限...
-
アクセスのレポートのヘッダー...
-
WORDで二分の一は0.5の表示方法
-
accessのフォームに設置したボ...
-
ACCESSでのランダムのレ...
-
Docmd.Findrecordで空白の検索方法
-
ファイルメーカーで画像ファイ...
-
Accessフォームで平均値の出し...
-
ファイルメーカーの再帰定義/リ...
-
アクションクエリでレコード数...
-
ファイルメーカーへCSVデータを...
-
ワードでプルダウン項目を作りたい
-
Access2000でレポートを横で印...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
Accessのクエリーのゼロデータ...
-
Access2007でSQLの複数列副問い...
-
アクセスのフィルタ nullにつ...
-
Accessのクエリで1フィールドの...
-
Accessのデータの一部を削除す...
-
access2019 チェックボックスと...
-
AccessからExcelへの条件付エク...
-
access(アクセス):パラメータ...
-
Access クエリで連結する文字...
-
Access:固定長文字列ファイル...
-
アクセスで任意の件数を抽出す...
-
accessで空白の時の抽出
-
Accessクエリ特定文字列のカウ...
-
Access Left$関数で全角半角が...
-
【Access】先月のデータを抽出...
-
テーブルの差分をとる結合
-
Accessクエリで年月フィールド...
-
ACCESS クエリ 抽出条件が多い場合
-
ActiveDirectoryのCSVエクスポート
おすすめ情報