• 締切済み

アクセス クエリ 抽出方法を教えてください

アクセス初心者です、よろしくお願いします。 支払管理を試行錯誤しております。 請求金額に対して、値引き無の取引先と、値引き計算の異なる2社の取引先があり差し引きした支払金額を表示させたいのです。 どのようにすればよいのでしょうか? 値引CDテーブルで、1は無 2は請求金額に対して500000円以上なら1% 3は請求金額に対して500000円以上なら0.36%とするにはどのように考えたらよいのか・・・ SELECT T取引先マスター.取引先CD, T請求データ.請求NO, T取引先マスター.値引CD, T請求データ.〆切日, T請求データ.請求金額, ROUND([請求金額]*0.01) AS 値引 FROM T取引先マスター INNER JOIN T請求データ ON T取引先マスター.取引先CD = T請求データ.取引先CD WHERE (((T取引先マスター.値引CD)=2) AND ((T請求データ.請求金額)>=500000)) ORDER BY T取引先マスター.取引先CD, T請求データ.〆切日; 値引CD=2の場合のクエリを上記のようにしてみました。これに値引CD=1,3を付け足せる方法はありませんか? 宜しくお願い致します。

みんなの回答

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.1

Accessなら IIf(条件, 真の場合, 偽の場合) が使えるよ IIf(T取引先マスター.値引CD=2 and T請求データ.請求金額>=500000, ROUND([請求金額]*0.01), IIf(T取引先マスター.値引CD=3 and T請求データ.請求金額>=500000, ROUND([請求金額]*0.0036), 0)) AS 値引

miyu710
質問者

お礼

有難うございます。 私も今、エクセルだったらif関数が使えることを思い出し、iif関数をつかってやってみました。 うまくいきました^^ 初心者なので何日も考えていたので涙が出るほどうれしかったです。

関連するQ&A

  • アクセス 支払管理について

    よろしくお願いします。 以前に値引きの割引率が異なる場合の方法をこちらで質問させていただき、その時はIIF関数でうまく表示できるようになったのですが、値引きを実行する月が当月の売上より値引きの会社とその翌月の売上より値引きする会社とに分かれており 翌月の売上より値引きする場合の方法がわかりません。今はその当月に表示されています。 『請求データテーブル』請求NO/取引先CD/〆切り日/請求金額 『支払データテーブル』支払NO/請求NO/支払日/支払金額 『値引きデータクエリ』取引先CD/請求NO/値引き金額  このように分けて[請求NO]にてつなげてあります。 どうぞよろしくお願いします。

  • 選択クエリー

    アクセス97で選択クエリーを作成したいのですが、 【請求マスタ】 得意先コード 今回請求開始日 今回請求締切日 【取引明細データ】 得意先コード 取引年月日 取引金額 というファイルがあり、請求先マスタに入っている得意先コードと合致する取引明細データであり、かつ請求マスタの今回開始日から今回締切日までの取引明細データを抽出したい、というのが目的です。 選択クエリの作成時、取引明細データの取引年月日の抽出条件に、between 請求マスタ.今回請求開始日 and 請求マスタ.今回請求締切日、と入れたのですが、[請求マスタ.今回請求締切日]となってしまい、請求マスタの今回請求締切日が認識されなくなってしまっています。 どこか設定が足りていないところがあるのでしょうか。アドバイスいただきたく、よろしくお願い致します。

  • Access2016 マイナス設定出来ません。

    こんにちは 先日、質問して丁寧にお教え頂いたのに どうしても出来ません。先日、教えてくださったお二方様 出来が悪い子で本当にすみません。 SELECT T入出金.番号, T入出金.日付, T入出金.発電所コード, T入出金.発電所名, T発電所マスター.事業形態, T入出金.項目コード, T項目マスター.項目名, T入出金.[金額(税込)] FROM (T入出金 INNER JOIN T項目マスター ON T入出金.項目コード = T項目マスター.項目コード) INNER JOIN T発電所マスター ON T入出金.発電所コード = T発電所マスター.発電所コード, UPDATE T入出金 SET [T入出金].[金額(税込)] = [T入出金]![金額(税込)]*-1 WHERE ((([T項目マスター].項目コード)="K02")); で、実行すると FROM 句の構文エラーです。となります。 詳しい方、よろしくお願いいたします。

  • Accessのクエリについて教えてください。

    クエリで顧客名を入力するとその人のデータが表示されるようにしたいのですが、購入履歴がない人は表示されません。購入履歴のない人も全て表示させる方法を教えていただけますか? ちなみにSQLはこういう感じです。よろしくお願いします。 SELECT 顧客マスター.顧客ID, 顧客マスター.氏名, Sum(販売.販売額) AS 販売合計 FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID GROUP BY 顧客マスター.顧客ID, 顧客マスター.氏名 HAVING (((顧客マスター.氏名) Like [顧客名字を入力してください] & "*"));

  • Accessの条件つき抽出>テーブル作成。

    「T_マスタ」 ・氏名ID ・氏名 ・会社グループ 「T_サブ」 ・氏名ID ・データ年 というようなテーブルがあり、この2ツから「Q_検索」というクエリを作成しています。 このクエリを元に検索フォームを作成しました。 この検索フォームで「データ年」を選んで「エクスポート」を押すと、 会社グループが「110」のものだけを抽出して「T_Excel_110」という テーブルが作成されるようにしたいのです。 「エクスポート」ボタンのコードは ---------------------------------------- (検索用のコード)省略 DoCmd.RunSQL "SELECT [T_マスタ].[氏名ID], [T_マスタ].[氏名], [T_マスタ].[会社グループ],[T_サブ].[データ年], INTO T_Excel_110" _ & " FROM (T_マスタ INNER JOIN T_サブ ON [T_マスタ].[氏名ID]=[T_サブ].[氏名ID]) " _ & " WHERE ((([T_マスタ].[会社グループID])="110"))" & WhereCond stDocName = "T_Excel_110" DoCmd.OpenTable stDocName, acNormal, acEdit MsgBox "[ファイル]-[エクスポート]でExcelファイルを指定してください。" としたのですが、エラーになってしまいます。 いったいどこを直せばいいのでしょうか?

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

    売掛管理を作成しようと思っています。 「請求書T」と「入金T」 「商品T」「取引先T」を作成しました。 元帳作成にあたって、に必要なテーブル・クエリの組み方を教えてください。。 請求書テーブル フィールド名;請求番号、請求日、得意先番号、 売上額、摘要(商品名など) 入金テーブル フィールド名;ID(オートNo.)、取引先コード、入金日、入金額、調整(振込手数料等)、摘要 クエリで売上明細と商品Tをつなぎ、売掛元帳を作りたいのですが、 クエリのひっぱりかたがわかりません・。。 元帳 → 日付、取引先コード、取引先名、売上額、入金額、繰越残高、残高 (繰越残高は、取引先Tに持たせます) ※残高= 繰越残高 + 売上額 - 入金額 どうぞよろしくお願いします。

  • access2003 クエリSQL文について

    「JOIN操作の構文エラー」というメッセージがでてしまいます。 やりたいことは、 tbAを基に、tbB、tbCに存在するデータを抽出する。 さらに、tbB、tbCの商品コード、および取引先コードは、tbDに存在すること、です。 SELECT tbA.* FROM ((tbA LEFT JOIN tbB ON tbA.商品コード = tbB.商品コード) LEFT JOIN tbC ON tbA.取引先コード = tbC.取引先コード) LEFT JOIN tbD ON tbB.商品コード = tbD.商品コード AND tbC.取引先コード = tbD.取引先コード よろしくお願いします。

  • ACCESS まとめて表示するクエリについて

    商品の売上データ・仕入データが個別にあります。 商品には大中小の分類があり、各分類は2ケタのコードです。つまり、 (1) 大分類/中分類/小分類/仕入金額 01/02/05/1,000 という構成のデータと (2) 大分類/中分類/小分類/売上金額 01/02/05/1,250 という構成のデータとがあるわけです。この2つをExcelデータで持ってて、データが大量なのでAccessに取り込み、最終的には 大分類/中分類/小分類/仕入金額/売上金額 01/02/05/1,000/1,250 というように、仕入金額と売上金額を一纏めにして表示したいのです。 ここで、上記(1)を仕入テーブル、(2)を売上テーブルとし、 SELECT 大分類,中分類,小分類,仕入金額,売上金額 FROM 仕入,売上 WHERE 仕入.大分類=売上.大分類 AND 仕入.中分類=売上.中分類 AND 仕入.小分類=売上.小分類 とクエリを作ってみたら、各テーブルのデータが数千件になっただけで、物凄くクエリの動きが遅くなりました。 大中小分類の一致を、WHEREでなくINNER JOINで記述してみても、遅くなります。 最初のテーブル作成からして、間違ってるでしょうか?いい案はないでしょうか?

  • Accessでタイムによるレーンの割り振り方法について

    お世話になります。 アクセスの抽出?についての質問です。 水泳競技のレーン割り振りをアクセスにて作成しております。 各種目ごとのエントリータイムの昇順までは表示させることができましたが、 レーンの割り振りをどのように行えばよいか全く見当もつきません。 各種目ごとのタイムから 1位は4レーン 2位は5レーン 3位は3レーン 4位は6レーン 5位は2レーン 6位は7レーン 7位は1レーン と割り振りを行いたい。 しかし、参加者が6の倍数の場合は 1位は4レーン 2位は5レーン 3位は3レーン 4位は6レーン 5位は2レーン 6位は7レーン と割り振りを行います。 ですが、6と7の最小公倍数が42のため、参加者が42を超えた場合には 1位は4レーン 2位は5レーン 3位は3レーン 4位は6レーン 5位は2レーン 6位は7レーン 7位は1レーン と割り振りを行いたます。 単純に抽出を行うためのクエリは以下のようにしました。 SELECT Tエントリーマスター.生徒ID, Tエントリーマスター.生徒名, Tエントリーマスター.フリガナ, T学校マスター.学校名, T種目マスター.種目名 AS 種目名の合計, Tエントリーマスター.タイム FROM T種目マスター INNER JOIN (T学校マスター INNER JOIN Tエントリーマスター ON T学校マスター.学校ID=Tエントリーマスター.学校ID) ON T種目マスター.種目ID=Tエントリーマスター.種目ID GROUP BY Tエントリーマスター.生徒ID, Tエントリーマスター.生徒名, Tエントリーマスター.フリガナ, T学校マスター.学校名, T種目マスター.種目名, Tエントリーマスター.タイム, Tエントリーマスター.学校ID, Tエントリーマスター.種目ID ORDER BY T種目マスター.種目名, Tエントリーマスター.タイム; お忙しいとは思いますがよろしくお願いいたします。

  • ACCESS SQL 括弧について

    AS 売上の合計をAS 07売上の合計に変えたところ かっこの使い方が正しくないと言われました。 ASの名前を変えただけなのですが、何が問題なのでしょうか? SELECT IIf([07売上の合計]=[売上],"●","×") AS 比較 FROM [SELECT ■T_M店マスタ.企業コード, ■T_M店マスタ.データレベル, Sum(■売上三期.[07年_売上]) AS 07売上の合計 FROM ■T_M店マスタ INNER JOIN ■売上三期 ON ■T_M店マスタ.店コード = ■売上三期.店コード GROUP BY ■T_M店マスタ.企業コード, ■T_M店マスタ.データレベル HAVING (((■T_M店マスタ.データレベル)="10"))]. AS 店 INNER JOIN [SELECT [●T_K調査データ(売上)企業レベル(単独店込み)].企業コード, [●T_K調査データ(売上)企業レベル(単独店込み)].売上, Format(DateAdd("m",-6,CDate("H" & Left([決算期],2) & "年" & Right([決算期],2) & "月")),"yyyy" & "年") AS 式1 FROM [●T_K調査データ(売上)企業レベル(単独店込み)] WHERE (((Format(DateAdd("m",-6,CDate("H" & Left([決算期],2) & "年" & Right([決算期],2) & "月")),"yyyy" & "年"))="2007年"))]. AS 企業 ON 店.企業コード = 企業.企業コード WHERE (((IIf([07売上の合計]=[売上],"●","×"))="×"));