- ベストアンサー
クエリ教えてください。
SQLSERVER2005 現在開発の中でデータの抽出について悩んでいます。 どなたかご教授お願いします。 <TBLa> コード A B 001 2008 12 (1) 001 2009 01 001 2009 02 <TBLb> コード 年 月 001 2009 01 001 2009 02 抽出したいのは(1)のデータ。 <TBLa>のコード、A、Bが<TBLb>コード、年、月にHITしないデータです。 クエリで抽出する方法をお願いします。
- SQL Server
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何通りも書けそうですが。。 SELECT * FROM TBLa a WHERE NOT EXISTS (SELECT NULL FROM TBLb WHERE コード=a.コード AND 年=a.A AND 月=a.B) SELECT * FROM TBLa a WHERE CONVERT(varchar,コード)+'*'+CONVERT(varchar,A)+'*'+CONVERT(varchar,B) NOT IN (SELECT CONVERT(varchar,コード)+'*'+CONVERT(varchar,年)+'*'+CONVERT(varchar,月) FROM TBLb) SELECT a.* FROM TBLa a INNER JOIN (SELECT * FROM TBLa EXCEPT SELECT * FROM TBLb) b ON a.コード=b.コード AND a.A=b.A AND a.B=b.B
関連するQ&A
- Accessのクエリ(初心者)
Access超初心者です。 クエリで悩んでいるので、お教えください。 テーブル1に CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付)の4項目があり、 クエリを使って、最も大きいSUUを抽出したい (かつ最も大きいSUUのデータが重複している場合、その中で最も古い日付のデータのみを抽出したい)のですが・・・ たとえば、 テーブル内容: CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付) A_あめ_600_0517 A_あめ_900_0518 A_あめ_400_0618 B_ガム_120_0217 B_ガム_060_0319 B_ガム_180_0718 B_ガム_180_0518 抽出結果: A_あめ_900_0518 B_ガム_180_0518 ということです。 デザインビューを使うとして、どのような方法がありますでしょうか? どうかご教授お願いします!
- 締切済み
- SQL Server
- Access 選択クエリーの抽出条件
Access2000を使っています。 選択クエリーの抽出条件にテーブルの値を設定することは可能でしょうか? たとえば、テーブルAに対して、抽出条件をテーブルBのデータでコード番号 ”B*”(コード番号にBのつくもの)を抽出したいのですが・・・。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マイクロソフト Accessのクエリーについて
Accessにおいて、 (1)A列、B列、C列をもつデータがテーブルにあります。 これに対して、 (2)A列、B列、C列、D列、E列をもつデータがテーブルに別途あるとします。 (1)に対して、(2)はA列、B列、C列に合致しているデータがいくつあるのか、 A列、B列のみ合致しているデータがいくつあるのか、 A列のみ合致しているデータがいくつあるのか、 A,B,Cいずれも合致していないデータはいくつあるのか? それぞれのデータを(1)と照らし合わせて(2)から抜き出そうとした場合には、 どのような抽出方法が効率いいのでしょうか?またクエリーは複数に なってもかまわないのですが、いずれかで抽出された(2)のデータはいずれも 重複して抽出されない、かぶらない(上から順に抽出をかける)ことを前提にした場合の もっとも適な抽出方法はありますでしょうか。 以下はおまけです(もし余力があれば) ↓ また3つ合致しているデータにはそのレコードの横に列を新しく追加して1とふる、 2つ合致しているのはそのコードの横に列を新しく追加して2とふる 1つ合致しているのはそのコードの横に列を新しく追加して1とふる 0つ合しているのはそのレコードの横に列を新しく追加して0とふる、 という作業をAccessでするとした場合、一致クエリー&更新クエリー&マクロ等で 実現できるのでしょうか? もしよいお知恵あればご教授いただきたく、 お願いいたします。
- ベストアンサー
- その他MS Office製品
- アクセスクエリの質問です
データ群の製品コードをクエリにて抽出時、 製品コードが AF0001-14 とかの場合 AF0001として抽出する方法はありますか? つまり-14を消してAF0001として抽出したいです。 ご教授願います。
- ベストアンサー
- その他MS Office製品
- サブクエリ
見ていただいてありがとうございます。 ただいま、業務でSQLを作成しているのですが、 なにぶん経験が浅く、行き詰ってしまっています。 どなたかわかる方、どうぞご教授ください。 環境は、 OS:WinXP Honme PG:VB.net Server:SQLServer2000 です。 わからないのは、以下の様なSQLです。 SELECT * from (SELECT tblA.field1 , tblA.field2, MAX(tblA.field3) AS MxNum FROM ( (tblA INNER JOIN tblB ON tblA.field1 = tblB.field1) INNER JOIN tblC ON tblA.field2 = tblC.field1 ) INNER JOIN tblD ON tblA.field4 = tblD.field1 GROUP BY tblA.field1,tblA.field2,tblA.field3) サブクエリの使い方がおかしいらしく エラーとなってしまいます。 (「fromの後に不要な文字が・・・」という 構文エラーになります。) サブクエリとして使用しようとしている()内の SELECT文は、クエリアナライザで実行すると 正常に終了して結果が返ってきます。 大変困っているので、 どうか宜しくお願いいたします。
- ベストアンサー
- SQL Server
- クエリの抽出条件について
クエリを作ろうと考えています。 複数あるフィールドの中に、2つの日付フィールドA,Bとあり、 AよりBの日付が前だった場合を抽出したいと考えているのですが、 どなたかご教授いただければと思います。
- ベストアンサー
- オフィス系ソフト
- Access 抽出漏れ行をみつけるクエリ
図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。
- ベストアンサー
- その他(データベース)
- EXCEL 2007 QUERY
元となるデータ13Aからデータ抽出しました。 新規に作成したデータ14Bが13Aと同じFORMAT なので13AのQUERY転用したいのですが よろしくお願いします。
- 締切済み
- その他(データベース)
- クエリで2つずつ取り出す方法について
毎度お世話になっております。 WindowsXP、Access2003を使用しております。 以下のテーブル1があります。 [テーブル1] CODE 日付 A 20080101 A 20080102 A 20080103 B 20080101 C 20080101 C 20080103 C 20080104 CODEごとに、日付の若いものから2行ずつ、 1つしかないものは1行のみ抽出したいのです。 [希望する結果] CODE 日付 A 20080101 A 20080102 B 20080101 C 20080101 C 20080103 これはクエリで可能なのでしょうか。 ご教授よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Access97のクエリーについて
Access97のクエリーで次のようなデータ抽出をしたいのですが、設定方法が良く分かりません。 1.約20000レコードのCSVファイルを外部データ のインポートでTDLを作成。 2.重複クエリーを走行すると、約10000レコードが 重複していた。 3.作成したTBLから重複者がいないデータを抽出した い。 イメージ: 処理前 a,2222,111,1,1234567 a,1111,100,1,0001234 b,0001,234,1,5555511 c,0003,001,1,0005555 c,0005,201,1,3345678 ↓(クエリー) 処理後 a,1111,100,1,0001234 b,0001,234,1,5555511 c,0003,001,1,0005555 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
サブクエリが苦手でいつも苦戦してしまいます。 ありがとうございました。