• 締切済み

ACCESS 抽出条件の指定に関して

抽出条件の指定で少し分からないことがあるので教えていただきたいのですが、 店コード_売上構成_商品とフィールドあります。 商品のスポーツシューズの売上構成が0又はヌル””でない場合、 そうではない店コード、売上構成比、商品名をすべて表示したのですが クエリでどのように抽出条件を指定すればよいでしょうか? ようするにスポーツシューズがない店に関しては表示せず スポーツシューズがある店のすべての商品、売上構成を表示したいということです。

  • sskj
  • お礼率24% (75/303)

みんなの回答

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.7

ANo.3さんので答えになってますよ。 サブクエリと言うので、調べるとたくさん出てきます。 http://www.techscore.com/tech/sql/07_01.html とか。 「スポーツシューズ」の構成比が0またはnullでない店コードは SELECT 店コード FROM テーブル1 WHERE (商品="スポーツシューズ") AND (売上構成 Is Not Null) And (売上構成<>0) または SELECT 店コード FROM テーブル1 WHERE (商品="スポーツシューズ") AND (nz(売上構成)<>0) で求まるので、あとは SELECT * FROM テーブル1 とかの実際求めるクエリのWHERE条件を 店コード IN(SELECT 店コード FROM テーブル1 WHERE (商品="スポーツシューズ") AND (nz(売上構成)<>0)) にする。 例えば SELECT * FROM テーブル1 WHERE 店コード IN(SELECT 店コード FROM テーブル1 WHERE (商品="スポーツシューズ") AND (nz(売上構成)<>0)) とか。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.6

#3です > 別フィールドでDLOOKUP系?の関数を使えばできるんですかね。 多分、やろうと思えば、可能だと思うよ 複数条件にするのは難しいから、フィールドにDLOOKUP系関数を使用する方法になるけどね #5にも記載したけど・・・少々、疑問はあるけど・・・ In ( Select 店コード From [テーブル名] Where 商品 = "スポーツシューズ" And 売上構成 > 0 ) で、行けると思うんだけどね(テーブル名は、書き換えてね) #5の懸念の通りだと「売上構成 > 0」を「売上構成 >= 0」で、行けると思うけど・・・Nullは、比較数値ではないので、気にしないでも問題は無いよ サブクエリで、「スポーツシューズの売上構成が0より大きい店コード」の一覧を作り、「In」で、その店コードを含むものを条件として抽出すると言うことね

sskj
質問者

補足

説明が悪かったので具体例をあげました。 >In ( Select 店コード From [テーブル名] Where 商品 = "a" And 売上構成 > 0 ) 結果 店コード_売上構成_商品名 1_0_a 1_23_b 1_77_c 2_10_a 2_20_b 2_70_c ↓ 2_10_a 上記指定ではa以外の商品が表示されません。 スポーツシューズのみ表示する方法は分かるのですが、 以下の用にスポーツシューズが0の場合同じ店コードは抽出しない スポーツシューズが0でない場合同じ店コードをすべて抽出する。 この条件の指定方法が分かりません。 店コード_売上構成_商品名 1_0_a 1_23_b 1_77_c 2_10_a 2_20_b 2_70_c ↓ 2_10_a 2_20_b 2_70_c

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

#3です > の条件とは、一致しないと思うのですが・・・ の意図が判るかな? > スポーツシューズがある店のすべての商品、売上構成を > 表示したいということです。 の条件からすれば・・・「売上構成=取り扱い」の条件が成立しないと、抽出できないと言う話 ですので、「売上構成=0」は、単純に売れなかっただけで取り扱いをしてなかったと言う話ではないと、言う話、これが、1年の売上構成なら確率的に低いから判るけど・・・1日の売上構成なら可能性的にあると言うこと だから、「売上構成=Null」が存在して、これが取り扱いをしてないと、言うことなのでは?と、深読みしてるのですが・・・ その辺りどうだろう? 多分、売上構成を順当に考えれば、全売上の売上比100%~0%の数値が入ってると、思うのですが・・・そのあたり補足してね

noname#140971
noname#140971
回答No.4

ID__fld1__fld2 1___A_______10 2___B________0 fld1=C かつ fld=0 という条件に合致しないということですか・・・。 SELECT * FROM tab1 WHERE Not (fld1="C" And NZ(fld2)=0);

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

店コードの条件に、 In ( Select 店コード From [テーブル名] Where 商品 = "スポーツシューズ" And ~ ) と、言うのを記載すると言う話? まぁ、条件が「~」と言うのは、 > 0又はヌル””でない場合、 > そうではない店コード 否定の否定で、0またはNullの店コードと > スポーツシューズがある店のすべての商品 の条件とは、一致しないと思うのですが・・・ データの状況を具体的に表示した方が良いと思うよ

sskj
質問者

補足

店コード_売上構成_商品名 1_0_a 1_23_b 1_77_c 2_10_a 2_20_b 2_70_c ↓ 2_10_a 2_20_b 2_70_c a=スポーツシューズ 店コード1に関してはaのスポーツ売上構成が0なので抽出しません。 店コード2に関してはaに10と売上構成があるので抽出します。 内容としてはとても簡単なのですが今ひとつ分かりません。 別フィールドでDLOOKUP系?の関数を使えばできるんですかね。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

売上構成比は Is Not Null And <>0 商品名は "スポーツシューズ" でどうでしょう。

sskj
質問者

補足

勘違いされていると思うのですが、表示したいのはすべての商品です。 それで表示されるのはスポーツシューズだけになってしまいますよね。 表示したくないのは、スポーツシューズが0のすべて店の商品です。

noname#140971
noname#140971
回答No.1

tab1: ID_fld1_fld2 01_A______10 02_B_______0 03_C____nill クエリ1: ID_fld1_fld2 01_A______10 SELECT * FROM tab1 WHERE Nz(fld2)<>0; Nz()を使って条件指定されたらいいです。 SELECT * FROM tab1 WHERE fld2<>0 AND fld2 IS NOT NULL; よりシンプルだと思います。

sskj
質問者

補足

補足内容はANo.2と同じです。 感じとしては 商品のスポーツシューズの売上構成が0でない店コードのみ抽出。

関連するQ&A

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

  • access2000 クエリの抽出条件欄で・・・

    access2000で質問です。 フォームからいくつかの条件(10件くらい)を入力させて、すべてに合致した レコードを抽出します。ただし何も入力しない項目は無視し、全く条件を指定 しない場合は全抽出となります。 例えば、クエリの抽出条件のところでif文を使って、nullの場合は抽出 条件なし、null以外の場合は入力したものを抽出、みたいな事ができない ものでしょうか? よいやり方があれば教えてください。よろしくお願いします。

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • Accessクエリの抽出条件にフォームから挿入する方法(2)

    フォームにいくつかの抽出条件を指定するためのテキストボックスをセットし、そこに入力されたデータをクエリの抽出条件に挿入しデータ抽出を行っておりますが、たとえば販売期間でデータを抽出するために、クエリの抽出条件に Between [Forms]![フォーム名]![売上日FROM] And [Forms]![フォーム名]![売上日TO]と入力しているのですが、テキストボックスに指定日付が入っていれば問題なく抽出できるのですが、販売期間の指定なしの場合、売上日from及び売上日TOがNULLとなるためか抽出結果がゼロ件になってしまいます。 期間指定なしの場合でも抽出ができるようにするためにはどのように記述すればよいか教えてください。よろしくお願いいたします。

  • ACCESS2010テキストボックス値を抽出条件に

    ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。

  • クエリの抽出条件で困っています

    Access2007にて、クエリの抽出条件に下記を指定していますが、データが1件も抽出されません。 ※エラーは表示されません IIf([forms]![F_Home]![アンケート種別]="1級",1 Or Is Null,2 Or Is Null) この抽出条件をしているフォールドには"1"、"2"、nullのデータしか存在しません。 「アンケート種別」が"1級"の場合は、"1"とnullのデータをかえし、 それ以外の「アンケート種別」の場合は、"2"とnullのデータをかえしたいと思っています。 どのように条件を指定すれば、データを抽出できるようになるでしょうか。 宜しくお願い致します。

  • アクセスの抽出条件について・・・

    いつも大変お世話になっております。 アクセスの抽出条件について質問したいのですが・・・ クエリを使って抽出条件を指定したいのですが・・・ コードが1~20まであったとして、 ●その「12」以外を抽出したいという場合 通常の「抽出条件」の「または」を使って指定できるのは、6つくらいまでの条件なので、本当は「1or2or3or4or5or6or7or8or9or...」というふうに12以外を抜かして条件を指定すればいいんでしょうが、欄が足りなくてできません。^^;) 恥ずかしながら、その方法しか分かりません。 何か「12以外の数字を抽出する」という条件の表記の仕方があるんだと思いますが分からないので教えてください。 お手数おかけしますが、よろしくお願いいたします。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • Access 選択クエリ 演算 抽出できない

    クエリで抽出がかけられなくて困っています。 売上: [単価]*[個数]の列フィールドで1以上を抽出かけたいのですが(0値になるものがあるので)、抽出条件に“>0”と入れてもパラメータクエリが出てしまって駄目です。 要するに、レポート時に、売上が0値またはnull値のレコードは抽出をかけたくないようにしたいのです。 どなたか教えてください。 バージョンは2003です。

  • アクセス 抽出条件

    いつもお世話になります。 次の条件で抽出したい時、クエリの抽出条件の書き方を教えてもらえますか。 支店CD 顧客CD 売上金額 昇順         降順 1     11     5,000 1     12     4,000 1     13     3,000 1     14     2,000 2     15     6,000 2     16     5,000 2     17     4,000 3     18     7,000 3     19     6,000 3     20     5,000 支店ごとの上位2レコードを抽出したいのです。下記のように 支店CD 顧客CD 売上金額 1     11     5,000 1     12     4,000 2     15     6,000 2     16     5,000 3     18     7,000 3     19     6,000 アクセスは2003です。よろしくお願いします。

専門家に質問してみよう