• 締切済み

Access 2007でのクエリ集計で複数の条件を指定したい

piroin654の回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

mhassyさんがお手本を示されているのでEndスレ に追いレスになりますが、部分集合の合計、 すなわち4つのものを取り出して足しあわ せば必要なものが求められるというごく 初歩的な考えです。もっとも24x2x4の2x4 が対象なので厳密には8つですね。 ネックになっている階層別にまずつくることはして いないのですか。普通に考えれば建物階数の抽出 条件にBetween 0 And 2 とか入れてみるものですが。 それをすれば何かに気付くはずです。その考えで 進めると以下のようになっていきます。 土地面積、建物面積の合計はどのような基準で行うのか わからないので、グループ化した状態で合計をします。 たとえば、低層ならば属性を考慮して、かつIDという オートナンバーをいれて、テーブル名をtblDATAとして、 ######################################### SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "低層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 0 And 2)) GROUP BY tblDATA.区名, tblDATA.属性, "低層" HAVING (((tblDATA.属性)=0)); ######################################### SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "低層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 0 And 2)) GROUP BY tblDATA.区名, tblDATA.属性, "低層" HAVING (((tblDATA.属性)=-1)); ######################################### の二つのクエリを作ります。これらを各階層ごとに "低層" AS 階層 と WHERE (((tblDATA.建物階数) Between 0 And 2)) の階数を変化させたもの、および HAVING (((tblDATA.属性)=-1)) の属性を変化させたものを2つづつ作ります。 これらのクエリはそれぞれが属性と階層で分けられて いるので、これらを足せばデータが得られる ということになります。 それらをUNIONクエリの中でつなげればデータが一応でます。 つまり、 SELECT ・・・・・・・・・・・ UNION SELECT ・・・・・・ UNION SELECT ・・・・・・ UNION SELECT ・・・・・・ ・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・ UNION SELECT ・・・・・・; のような構文です。以下全文。 ########################################## SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "低層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 0 And 2)) GROUP BY tblDATA.区名, tblDATA.属性, "低層" HAVING (((tblDATA.属性)=0)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "低層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 0 And 2)) GROUP BY tblDATA.区名, tblDATA.属性, "低層" HAVING (((tblDATA.属性)=-1)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "中層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 3 And 5)) GROUP BY tblDATA.区名, tblDATA.属性, "中層" HAVING (((tblDATA.属性)=0)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "中層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 3 And 5)) GROUP BY tblDATA.区名, tblDATA.属性, "中層" HAVING (((tblDATA.属性)=-1)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "中高層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 6 And 9)) GROUP BY tblDATA.区名, tblDATA.属性, "中高層" HAVING (((tblDATA.属性)=0)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "中高層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 6 And 9)) GROUP BY tblDATA.区名, tblDATA.属性, "中高層" HAVING (((tblDATA.属性)=-1)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "高層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 10 And 63)) GROUP BY tblDATA.区名, tblDATA.属性, "高層" HAVING (((tblDATA.属性)=0)) UNION SELECT tblDATA.区名, Sum(tblDATA.建物面積) AS 建物面積の合計, Sum(tblDATA.土地面積) AS 土地面積の合計, tblDATA.属性, "高層" AS 階層, Count(tblDATA.ID) AS 個数 FROM tblDATA WHERE (((tblDATA.建物階数) Between 10 And 63)) GROUP BY tblDATA.区名, tblDATA.属性, "高層" HAVING (((tblDATA.属性)=-1)); ############################################## 何か違っていたらいじくってみてください。 23x2x4=[東京23区]x[属性]x[階層]=184・・・・・・。

関連するQ&A

  • Accessでクロスタブ集計クエリの結果の列を固定にしたい。

    Access2007を使っています。 フィールド1においてAまたはBに一致するもののみをフィールド2(あ、い、う、え、・・)ごとに Countするというクロスタブ集計クエリを作成しました。 デザインビューで見たCriteria行には「"A" or "B"」と入っています。 結果は、   A B あ 1   い 2 2 う 1   え   1 ・ ・ ・ ・ ・ ・ のような感じになります。 この結果を他のクエリ(クエリX)で参照し、AやBという列を使っているため、 もしも、AもしくはBが元のフィールド2の中に1レコードも無い場合、 クロスタブ集計の結果からAもしはBの列そのものがなくなってしまい、 クエリXを実行した際にエラーとなってしまいます。 フィールド2内のAやBのレコード有無に関係なく、常にクロスタブ集計クエリの 結果を一定にする方法はありませんでしょうか?

  • アクセスで2種類の範囲での絞り込み方法を教えてください。

    アクセス2000で不動産のデータベースを作っています。 地域・種類(マンション等)・条件(賃貸等)・土地面積・建物面積から絞り込みたいです。 今のところ、地域・種類・条件までは抽出できるようになっていますが、更に、土地面積を範囲で絞り込み、その上、更に建物面積で絞り込みを行えるようにしたいのです。 クエリとフォームの設定をどうしたらよいのかを教えてください。 申し訳ありませんが、初心者向けで教えてくださると助かります。 よろしくお願いします。

  • 用途地域の規定について教えてください

    気に入った土地が見つかり購入しようか検討していますが、下記のことが気になっています。詳しい方教えてください。 その土地は東南8MT道路に接道しています。用途地域は第一種低層住居地域です。 そして、この物件の道を挟んで向かい側は第二種中高層住居地域です。 現在、向かい側の地域には2階建ての一戸建て住宅が建っていますが、その南側の地域に国道が通る予定になっているので、いずれ辺り一帯が買収されマンションなど高さのある建物が建てられる可能性もあります。そこで教えていただきたいのですが、もしそこに高層の建物を建てる場合、建築主は第二種中高層の規定に基づいて建てると思いますが、北側斜線の規定は一種低層地域の規定で建てもらえるのでしょうか。 よろしくお願いいたします。

  • ACCESSのクエリに行番号をつける

    Microsoft ACCESS 2003で、簡単な以下の様なクエリを作っています。 (1) 元のテーブル  売上年月日/販売先顧客名/商品名/数量/価格 (2) 売上年月毎価格集計クエリ  売上年月(グルーピング)/商品名(グルーピング)/数量(集計)/価格(集計)  このクエリが、以下の様に出るとします。  例1)  2009/09 商品A 50 25,000  2009/09 商品B 20 12,000  2009/09 商品C 33 45,000  ・  ・  2009/10 商品A 50 25,000  2009/10 商品B 20 12,000  ・  ・  このクエリの先頭に、以下例2の様に、年月毎にブレークする「行番号」をつけたいのですが、どの様にすればいいか見当がつきません。  行番号をつけられる(かつ、特定の条件でブレークして、行番号を"1"から振り直す)様な関数、関数が無ければやり方等、わかる人がおられたらお助け下さい。  よろしくお願いします。  例2)  1,2009/09 商品A 50 25,000  2,2009/09 商品B 20 12,000  3,2009/09 商品C 33 45,000  ・  ・  1,2009/10 商品A 50 25,000  2,2009/10 商品B 20 12,000  ・  ・

  • 下記の条件で何処まで広い家を建てれるのでしょうか?

    土地面積:133坪 建ぺい率:45% 容積率:60% 用途地域:第一種低層住居専用地域 上記の条件で地下、地上、横、縦、どこまで大きな家が建てれるでしょうか?

  • クロス集計クエリのフォーム表示と年月入力の自動化

    [クロス集計にトライ中] 日々作成しているデータを集計する作業「今まではデータをひらすら記録し再利用に特化」にトライしましたが、次に進めない状況に陥っております。クロス集計はウィーザードを使って作成しました。下記にて現状を紹介させていただきますので、アドバイスをお願いいたします。 [やりたいこと] 1、クロス集計の結果を単票フォームで表示させたいと思っています。アドバイスをお願いします。 2、今後、クロス集計等のACCESS集計の取組を効率的に進めたいのでアドバイスをお願いします。 フィールドの購入日はカレンダー入力「0000/00/00」を使って手動でテーブルに書き込んでいます。この入力結果「0000/00/00」を参照させるなどして、テーブルの購入月フィールドに自動で書込めればと思っています「0000/00または0000年00月」。データ入力フォームには表示させなくてもいいと考えています。。 ◆対象オブジェクト 【テーブル】 名前:T_食材管理 「フィールド名(クロス集計利用フィールドのみ抜粋)」 ID:オートナンバー 購入日:カレンダー機能で入力「0000/00/00」 購入月:手入力「0000年00月」※集計を考えて直近で追加したフィールド 消費:(Yes・No)型 食材名:天ぷら・卵・漬物・etc 【クロス集計クエリ(2種類作成)】 名前1:Q_食材管理のクロス集計_購入「フィールド名はクエリを確認してそのまま記載」 (購入月と食材名だけで出来そうに思っていましたが、ウイザードが進めずIDを追加しました) 「選択フィールド」 ・食材名=グループ化(行見出し) ・購入月=グループ化(列見出し) ・ID=カウント(値) ・ID=カウント(行見出し) 名前2:Q_食材管理のクロス集計_消費「フィールド名はクエリを確認してそのまま記載」 (購入月と食材名だけで出来そうに思っていましたが、ウイザードが進めずIDを追加しました) 「選択フィールド」 ・食材名=グループ化(行見出し) ・購入月=グループ化(列見出し) ・消費=グループ化 ・ID=カウント(値) ・ID=カウント(行見出し) ・消費=Where 条件「抽出条件(Yes)」 以上ですが、不慣れもあり情報不足がありましたらご指摘願います。

  • 日影について

    家を建てようと思い土地探しをしています。 いい土地がいくつか見つかったら建築士さんを探して相談し 最終的に、どの土地にするか決定しようと考えています。 その前に、独学で勉強してみたのですが わかりませんので教えていただけないでしょうか・・ 宜しくお願いします。 南側が道路(幅6m)の土地で、西側の隣地境界線が、用途地域の境(隣地の土地が近隣商業地域で、こちらの土地が第1種低層住居地域)になっているのですが、隣の近隣商業地域側は建物高さ<10mなら日影の対象にならないのでしょうか? ネットで調べてみると日影が日影時間の制限の異なる区域に落ちる場合は、各区域の制限も受けるとありまました。 第1種低層地域側に影が落ちる場合に近隣商業地域の建物は軒高>7m又は地上階数≧3(こちら側(第1種低層地域)は軒高>7m又は地上階数≧3の場合に対象になるのに・・・)で対象にならないのでしょうか? 今は、2階建ての低い家が建っているのですが、将来、高い建物が建つのが可能だと思うと・・・考えてしまいます。 宜しくお願いします。

  • この条件で何坪の家どんな家が建築できますか?

    下記の条件で最大どのくらいの家を新築できますか? 土地面積436.82m2 市街化区域 容積率60% 建ぺい率40% 一種低層 宅地 下水道なし また下水道を敷地に引き込む時はどのくらい費用が必要ですか?

  • アクセスで、条件を付けてカウントしたいです。

    アクセスで、条件を付けてカウントしたいです。 前回こちらで助けていただきました。 http://okwave.jp/qa/q5906286.html おかげで、ほしかったデータベースを作ることができとても感謝しております。 今回、そのデータベースを使い集計している最中に戸惑ってしまう点があり 再度質問させていただきます。 できあがったデータは、添付の画像のようになっています。 そこから来店回数ごとに○×をカウントしたいです。 たとえば、 1回の来店者でAの購入者は5人、Bの購入者は6人、Cの購入者は3人 といったように、一つのクエリで作成したいです。 http://mar1224.fc2web.com/site/access_index03.html こちらのように集計をカウントにして、○×の個数を出すことはできたのですが 一回の集計で複数の商品の購入の有無をデータ化することができませんでした。 目指すものとしては下記のようなデータにしたいです。 来店回数     A購入     B購入     C購入     D購入  1回      80人      90人      53人     24人        2回      70人      100人      74人     55人   3回      93人      44人      42人     77人   4回      55人      63人      23人     66人   5回      80人      90人      53人     24人   6回      80人      440人      52人     24人  Dcount関数を使ってみたのですが うまくいきませんでした。 ちなみに使った式としては A購入= DCount("名前", "3月の来店者データ", "A購入='○'") こちらにすると来店回数とうまく紐づけられませんでした。(トータルの○の個数が出てしまいます。) こちら初歩的な質問で申し訳ございませんが、 アドバイスいただけると幸いです・・・涙 よろしくおねがいいたします。

  • 中古戸建の購入を検討してます。

    条件は以下のとおりです。 2階建て 土地59平米 建て面積58平米 2004年築 一種低層 準防火地区 高度利用地区 建ぺい率50% 容積率100% 再建築不可(43条ただし書きの許可をとれば再建築可) 北側4m道路に接道5.2m 景観法の規制あり 懸念されることはありますか? 留意すべき点はありますか? 住宅街で一種低層なのに高度利用地区です。どういうことでしょうか?(一種低層や高度利用地区自体の意味はわかります。) いつか都市計画にかかって土地を手放さなければならなかったり周りが高層ビル群になってしまう可能性はありますか? なんでも良いのでアドバイスお願い致します。