- 締切済み
Access 抽出データ件数のカウント方法について
初心者なので、初歩的な質問で申し訳ありません。 以下の2つのテーブルを用いて 販売した数を数える_クエリテーブルを 作成したいのですが、どの様に作成すれば 良いのでしょうか? 期待するクエリーテーブルの結果は << Q_Goods_Master >>の様な結果です。 ========================= << T_Goods_Master >> ID | GoodsName ---+-------------- 01 | バナナ 02 | りんご 03 | みかん << T_Sales_Data >> ID | GoodsName ---+-------------- 01 | りんご 02 | みかん 03 | りんご ========================= << Q_Goods_Master >> GoodsName | Qty ----------+---- バナナ | 0 りんご | 2 みかん | 1
- tv_junky
- お礼率21% (22/103)
- その他(データベース)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
クエリ2: GoodsName_Qty バナナ___0 リンゴ___2 みかん___1 SELECT GoodsName, DBCount("*","T_Sales_Data","GoodsName='" & GoodsName & "'") AS Qty FROM T_Goods_Master; 一番簡単なのは DCount()またはDBCount()を使うことでしょう。 SELECT T_Goods_Master.GoodsName, Count(T_Sales_Data.GoodsName) AS Qty FROM T_Goods_Master LEFT JOIN T_Sales_Data ON T_Goods_Master.GoodsName=T_Sales_Data.GoodsName GROUP BY T_Goods_Master.GoodsName; しかし、基本はこのようかもです。 [SQLビュー]でコピペして[デザインビュー]に戻せば設定要領は判ります。 Public Function DBCount(ByVal strField As String, _ ByVal strTable As String, _ Optional ByVal strWhere As String = "", _ Optional ByVal ReturnValue = 0) As Variant On Error GoTo Err_DBCount Dim N Dim strQuerySQL As String Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset strQuerySQL = "SELECT COUNT(" & strField & ") FROM " & strTable If Len(strWhere) > 0 Then strQuerySQL = strQuerySQL & " WHERE " & strWhere End If With rst .Open strQuerySQL, _ CurrentProject.Connection, _ adOpenStatic, _ adLockReadOnly If Not .BOF Then .MoveFirst N = .Fields(0) End If End With Exit_DBCount: On Error Resume Next rst.Close Set rst = Nothing DBCount = IIf(N <> 0, N, ReturnValue) Exit Function Err_DBCount: MsgBox "SELECT 文の実行時にエラーが発生しました。(DBCount)" & Chr$(13) & Chr$(13) & _ "・Err.Description=" & Err.Description & Chr$(13) & _ "・SQL Text=" & strQuerySQL, _ vbExclamation, " 関数エラーメッセージ" Resume Exit_DBCount End Function
関連するQ&A
- Access 抽出データ件数のカウント更新について
以下の2つのテーブルを用いて 販売した数を更新したいのですが、 どの様に作成すれば 良いのでしょうか? クエリーテーブルに結果を出力は出来たのですが、 クエリーテーブルではなく、BUSYO_MSTのM_F_countに カウント結果を出すには、どこを直せばいいでしょうか。 UPDATE BUSYO_MST SET M_F_count=( SELECT Count(M_File.key) AS M_F_count FROM BUSYO_MST LEFT JOIN M_File ON BUSYO_MST.Key = M_File.key GROUP BY BUSYO_MST.Key); ========================= << BUSYO_MST >> ID | key | M_F_count ---+-------------- 01 | バナナ | 0 02 | りんご | 2 03 | みかん | 1 << M_File >> ID | key ---+-------------- 01 | りんご 02 | みかん 03 | りんご
- ベストアンサー
- その他(データベース)
- ACCESSのデータ抽出について
項目が同じ(1)テーブルと(2)テーブルと(3)の産地データをリレーションシップでつなぎデータ■クエリ_結果2のように抽出したいのですが■クエリ_結果2のちょうに重複するデータしか抽出できません。 どうしたら結果1のように全ての商品を抽出できるでしょうか? アクセス初心者です。よろしいくお願いします (1)テーブル【中央11月データ】 バナナ 50 りんご 10 ミカン 100 (2)テーブル【関西11月データ】 バナナ 30 梨 60 (3)産地データ バナナ フィリピン りんご 青森 みかん 愛媛 梨 千葉 ■クエリ_結果1 バナナ フィリピン 80 りんご 青森 10 みかん 愛媛 100 梨 千葉 60 ■クエリ_結果2 バナナ フィリピン 80
- ベストアンサー
- その他MS Office製品
- アクセスの2つのテーブルから重複しないものを抜き出す方法について
アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID 価格 商品 1 200 りんご 2 150 みかん 3 180 りんご 4 230 いちご テーブル Bには 1 150 みかん 2 180 りんご とあった場合 A-B のクエリーを実行して 1 200 りんご 2 230 いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 一つのテーブルの複数のフィールドから抜き出す方法について
一つのテーブルの複数のフィールドから抜き出す方法について 例えば下記のようなテーブルがあったとします。 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル C商店 イチゴ パイナップル バナナ D商店 イチゴ バナナ りんご のようなテーブルがありフィールド1~4いずれかにみかんを含むクエリーを作成し次のような結果をACCESSで作成したいのですが、簡単な方法はあるのでしょうか? 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル よろしくお願いいたします。 尚、使用しているデータベースはACCESS2000です。
- ベストアンサー
- その他(データベース)
- Accessのクエリ
Accessのクエリを作成しました。 クエリの結果例 日付 品物 2011/10/1 リンゴ 2011/10/3 みかん 2011/10/4 リンゴ 2011/10/5 バナナ 2011/10/6 みかん ・ ・ ・ この結果をもとに、各品物のカウント数を計算したいのですが クエリ等どう使うと可能になるでしょうか。 Excelは出来る限り使いたくありません。 Access入門者ですので、可能な限り分かりやすくお願いします。
- ベストアンサー
- その他MS Office製品
- Accessの組み合わせ集計について
No 顧客名 品名 1 ABC(株) ばなな 2 ABC(株) りんご 3 XYZ病院 ばなな 4 XYZ病院 みかん 5 DEF商事 ばなな 6 DEF商事 りんご 上記のようなテーブルから"ばなな+りんご"の組み合わせが2件、"ばなな+みかん"の組み合わせで1件の売上があったというクエリ(というのでしょうか?)を作成するにはどうすればよろしいでしょうか?
- 締切済み
- その他(データベース)
- ACCESSで、"***"を含むデータを抽出したい
宜しくお願い致します。 あるフィールドに、"***りんご"、"***みかん"といったように 文字の頭にアスタリスクを含んでいる文字があります。 アスタリスクを含んでいない、"りんご"、"みかん"のような 純粋な文字もあります。 クエリを作成して、頭にアスタリスクが付いている文字だけ抽出したいのですが、Accessだと*印=オールマイティと見なされてしまい、データの抽出ができません。 なにか良い方法はありますでしょうか。。。 宜しくお願い致しますm(__)m
- ベストアンサー
- オフィス系ソフト
- Accessのクエリーで。
テーブルA ID テーブルB ID 年 種類 テーブルC ID 年 種類 備考 テーブルCはBの詳細をかいたようなものになっていて、希望した時だけみられるようになっています(クリックする)。 これらのテーブルをもとにクエリーを作成しました。 テーブルA-B-Cの「ID」でリレーションがされています。 B-Cの「年」もリレーションされています。 たとえば、10というIDの人がいて、2001年と2002年のデータがあったとします。 ID | 年 | 種類 | 備考 10 | 2001 | みかん | 10 | 2002 | りんご | 青森産 10 | 2002 | みかん |愛媛産 10 | 2002 | めろん | というような感じだとします。 これがそれぞれABCに入っています。 クエリーのリレーションで「種類」にリレーションを貼らないと、 10 | 2002 | りんご | 青森産 10 | 2002 | りんご | 愛媛産 10 | 2002 | りんご | 10 | 2002 | みかん | 青森産 10 | 2002 | みかん | 愛媛産 10 | 2002 | みかん | 10 | 2002 | めろん | 青森産 10 | 2002 | めろん | 愛媛産 10 | 2002 | めろん | とダブッてしまい、「種類」でリレーションをはると 10 | 2002 | りんご | 青森産 10 | 2002 | みかん | 愛媛産 と、備考に何かが入ってるものしか出なくなってしまいます。 これを回避するにはどのようにしたらいいのでしょうか? よろしくお願いします。 AC2000です。
- ベストアンサー
- オフィス系ソフト
- 【Access】2つのクエリを1つにまとめる方法
下記のT_Subテーブルでmain_idフィールド毎のdayフィールドの最大値のレコードを取得し、 取得したレコードの中でT_Mainのidフィールドに存在するもののみを表示したいと思い、 下記のQ_T_Sub_SelectクエリとQ_Ansクエリを作成し、 Q_Ansクエリを実行する事で意図した動作になったと思います。 その後、この2つのクエリを1つのクエリにまとめようと思ったのですが、 どのように記述すれば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、 ご教示の程よろしくお願いします。 【Q_T_Sub_Selectクエリ】 SELECT T_Sub.* FROM T_Sub WHERE (((T_Sub.id)=(SELECT TOP 1 id FROM T_Sub Q WHERE Q.main_id = T_Sub.main_id ORDER BY day DESC, id DESC ))); 【Q_Ansクエリ】 SELECT T_Main.id, T_Main.field1, Q_T_Sub_Select.id, Q_T_Sub_Select.day, Q_T_Sub_Select.field2 FROM T_Main LEFT JOIN Q_T_Sub_Select ON T_Main.id = Q_T_Sub_Select.main_id; 【Q_Ansクエリの実行結果】 T_Main.id|field1|Q_T_Sub_Select.id|day|field2 1|A|2| |2000 3|C|6|2011/03/10|200 【テーブル(T_Main)】 id|field1 1|A 3|C 【テーブル(T_Sub)】 id|main_id|day|field2 1|1| |100 2|1| |2000 3|2|2011/03/04|400 4|2|2011/03/03|500 5|3|2011/03/10|300 6|3|2011/03/10|200 なお、1つのクエリにまとめたい理由ですが、最終的にはクエリではなく、 Visual Basic上に記述を移植したいと思っているためです。 ちなみに、1つのクエリをVisual Basic上に移植して SQLの実行結果を利用するイメージは何となく分かるため、 2つのクエリを1つにまとめる方法を希望しましたが、 2つのSQL文があってもクエリなどを使用せず、 Visual Basic上への記述のみで動作する方法があれば、そのような方法でも大丈夫です。 以上、よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Accessでテーブルの文字列フィールドを連結する
次のようなフィールドが2列のデータがあります。 1:りんご 1:みかん 1:バナナ 2:みかん 2:ぶどう 3:りんご 3:バナナ それを 1:りんご、みかん、バナナ 2:みかん、ぶどう 3:りんご、バナナ とクエリーでまとめたいのですが どのようにしたらよろしいでしょうか?
- 締切済み
- その他(データベース)