- ベストアンサー
ACCESS 2007の計算式設定について
30246kikuの回答
- 30246kiku
- ベストアンサー率73% (370/504)
+ - だけですよね 結果のみを求めるものになりますが、 クエリ名を「Q1」と仮定して、クエリのSQLビューに以下を記述してみます。 SELECT SUM(IIF(科目="A" OR 科目="B", 金額, IIF(科目="C", -金額, 0))) AS 結果 FROM Q1; もしくは、自己結合をして SELECT Q1.金額 + Q2.金額 - Q3.金額 AS 結果 FROM Q1, Q1 AS Q2, Q1 AS Q3 WHERE Q1.科目="A" AND Q2.科目="B" AND Q3.科目="C"; 後者の方は + - 以外も使えると思います。 または、クエリをもう一段経由させて TRANSFORM First(金額) AS 値 SELECT S FROM (SELECT 1 AS S, * FROM Q1) GROUP BY S PIVOT 科目; 上記をクエリ「Q2」とした場合、以下で SELECT [A]+[B]-[C] AS 結果 FROM Q2; クロス集計「Q2」で、科目をフィールド名に横展開して、その後で計算します。 必要なら科目のフィールドも表示できます。 SELECT [A], [B], [C], [A]+[B]-[C] AS 結果, [D], [E] FROM Q2; のような感じで、 その他として、VBAで、 クエリ「Q1」の Recordset を得て、計算するものを記述すればできると思います。 ※ 効率的なのかは、わかりません。
関連するQ&A
- ACCESSで計算をさせたい。
お世話になっています。 早速ですが、ACCESS2003でテーブルに入力した数字がエクセルのように結果を出し残すことはできるのでしょうか? テーブルでは計算ができないのでクエリでやるとしたらどのようにしたらいいでしょうか? 数量(A1)×単価(B1)=金額(C1)というC1の計算結果もレコードに保存できるものでしょうか? フォームではもちろん入力した数字を計算させることはできるのですが、その結果をレコードに残して行きたいと思っています。 どうかよろしくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- accessでの集計計算について
変な質問でごめんなさい。 テ-ブルA、「年月日」「金額1」「金額2」 テ-ブルB、「購入日」「取引」「価格」 以上のようなテ-ブルがあります。テ-ブルA(フォ-ム)のデ-タは1行のみです。 クエリで以下の計算のしかたを教えてください。 「取引」フィ-ルドを抽出条件で抽出したレコ-ドの「価格」の平均値を計算し”ア”とする。 求めたい数値は、 もし、「金額1」から”ア”を減算して負数だったら・・・0 もし、「金額1」から”ア”を減算して正数だったら、その数値 ただし、「金額2」を超過した場合は「金額2」とする。 その求めた数値をテ-ブルBの全レコ-ドの「価格」フィ-ルドに埋込む(貼付)る。 分かりにくい書き方で申し訳ありません。質問の意味が分からなかったら無視してください。ど素人です。
- ベストアンサー
- オフィス系ソフト
- access クエリーによるフィールド挿入について
クエリーにて、抽出処理をしますが、その中で、設定されていないフィールドを故意に挿入追加することはできますか? 例 「メモ」 欄は、いずれの対象テーブル、クエリーになく、 クエリー操作により、A B C メモ D という 結果を作成したい。 ※A~Dは、いずれかのテーブル、クエリーに設定されている。 ちなみに、メモ については、当然空白のみであり、入力プロパティはなんでもいいです。 ちなみに、access 2003が対象です。
- ベストアンサー
- その他MS Office製品
- Sum関数の使いかたについて(ACCESS)
レポート上に商品A、商品B、商品Cというテキストボックスがあってそれぞれのプロパティのコントロールボックスには以下の設定がしてあります。 =DSum("[商品A]","[抽出クエリ]") =DSum("[商品B]","[抽出クエリ]") =DSum("[商品C]","[抽出クエリ]") 商品A~Cそれぞれの合計値は正常に表示されるのですが、商品A~Cの合計値を別に設けたテキストボックス(総計)に表示させたいのですが、何も表示されません。 総計のコントロールボックスには以下の記述をしました。 =Sum([商品A]+[商品B]+[商品C]) Web検索で関数の使い方等を調べましたが、原因が分かりません。 どなたか、サポートをお願いいたします。
- ベストアンサー
- その他(データベース)
- アクセスのクエリについて
アクセスのクエリにおいて 店コード、店名 変更日付 備考 1 A店 2004/1/1 2 B店 2004/2/1 3 C店 2004/5/1 1 A店 2005/12/17 2 B店 2005/11/1 3 C店 2005/10/1 上記のようなクエリで店名A店B店C店それぞれの最新の日付を抽出したいのですがわかりません。 ご回答よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Accessでのリレーションシップなど
こんばんわ。過去ログを調べてみたのですが、ちょっと今ひとつ不明な点がありましたのでお伺いさせて 頂きたく記載致しました。現在、下のようなテーブルを作っております。 1)費目DB(合計60件ほど) ・科目番号←主キー設定済み ・大科目 ・中科目 ・小科目 ・予算金額 2)入力DB(約200件ほど入力/月) ・科目番号 ・金額 ← データ型:数値型/フィールドサイズ:長整数型/書式=通貨 ・調達伝票起票日 ・契約伝票起票日 リレーションシップで、1)費目DBの科目番号を「1」とし、2)入力DBの科目番号を「∞」として 組んでおります。 やりたい事は、2)入力DBに複数存在する同じ科目番号同士の金額を合計したものを出したい、という 事です。吐き出されるファイルのレコードのイメージは ・科目番号 ・大科目 ・中科目 ・小科目 ・金額の合計 です。 又、上記プラス2)入力DBにある「調達伝票起票日」毎(例:5/1~5/30分)の合計金額、という形でも 出したいのですが…。 尚、科目番号(8桁)には意味がありまして、左2桁=大科目の番号 次の3桁=中科目の番号 最後の 3桁=小科目 の番号を8桁の連番として科目番号をしております。 例えばこのような状態で科目番号11310XXX~11320XXXのみを抽出したい場合、どのようにすれば 宜しいでしょうか。 とりあえず苦労しているのが何故か金額が計算されない、という事です。データ型などの設定が誤っている 所為でしょうか。 それから、クエリーとリレーションシップとの大きな違いは、どういう所なのでしょう。 お手数ですが、どなたかご教授頂けますと大変助かります。何卒宜しくお願い致します。
- ベストアンサー
- その他(データベース)
- SQLでの計算と値の集約について
SQLについて、質問があります。 (質問) 以下のようなDBがあります。 【1のDB】 ID 品目 金額 日付 -------------------------------------------- 1 ミカン 1000 2007/11/1 1 オレンジ 2000 2007/11/1 1 レモン 100 2007/11/1 2 ぶどう 1500 2007/11/1 【2のDB】 区分 品目 金額 日付 ------------------------------------------- a ミカン 1000 2007/11/1 a オレンジ 500 2007/11/1 a レモン 300 2007/11/1 a ぶどう 1500 2007/11/1 b ミカン 100 2007/11/1 b オレンジ 200 2007/11/1 b レモン 500 2007/11/1 b ぶどう 2500 2007/11/1 条件。 1のDBの品目=2のDBの品目 やりたい事。 (1)2のDBの金額(区分=a)×1のDBの金額÷2のDBの金額(区分=b) (2)1のDBのIDで、(1)で得た計算結果を集約 上記DBで具体的に言うと、 1のDBのID=1(ミカン、オレンジ、レモン)のそれぞれの計算結果を計算 (ミカン) 1000×1000÷100=10000 (オレンジ) 500×2000÷200=5000 (レモン) 300×100÷500=30 計算結果を集計(ミカン+オレンジ+レモン) 10000+5000+30=15030 上記の作業をできれば、1回のSQLでやりたいと思うのですが、可能でしょうか? 1回のSQLでは不可能な場合、(1)番だけでもやりたいのですが・・・。 SQLのコーディングがよくわかりません。 ご教授をお願いします。
- ベストアンサー
- SQL Server
- 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 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ACCESS2007 クエリの抽出条件について教えてください
ACCESS2007で、ルックアップ列(コンボボックス)を使用したテーブルがあります。そのテーブルをクエリにて、コンボボックスの条件別に抽出させたいのですが、その抽出条件を教えていただけませんでしょうか。 コンボボックスリストの中身(A,B,C) A→Aのみ抽出したクエリ B→Bのみ抽出したクエリ C→Cのみ抽出したクエリ という風に作成したいのですが。 お忙しいところ申し訳ありません。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Access #エラーについて
Access初心者です。 よろしくお願いいたします。 [前提] テーブルA のIDに紐づけてクエリBの数値をクエリCで反映させたい。 〈詳細データ〉 ・テーブルA [ID] [名称] 1 あ 2 い 3 う 4 え 5 お ・クエリB [ID] [数値] 2 10 3 20 5 40 ・クエリC [ID] [名称] [数値] 1 あ #エラー 2 い 10 3 う 20 4 え #エラー 5 お 40 ・”テーブルAの[ID]”の全レコードと”クエリBの[ID]”の同じ結合フィールドだけを含めてリレーションを行っている。 ・クエリCの算式: IIf(IsError([クエリB].[数値]),0,[クエリB].[数値]) [質問] ・クエリCの『#エラー』部分を0にしたいのですが、何か良い方法はございませんでしょうか。 ・そもそも上記のロジックは無理がありますでしょうか。 アクセスはあまりいじったことがございません。ご回答いただけますと幸いです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
アドバイスありがとうございました。