• ベストアンサー

AccessのSQLで合計数をそれぞれカウントした

お世話になります。 Access2000で作成しております。 下記のテーブルでAccess2000のSQLを駆使して、 下記の結果を抽出したいと思っております。 やまだの成績=80の件数のみを抽出することはできたのですが、 80と60を同時に抽出する方法がわかりません。 お手数ですが教えていただければと思います。 --テーブル--- 名前   成績 やまだ  80 やまだ  80 たなか  80 やまだ  60 やまだ  80 ---結果※やまだのみ、各点数の件数----- 名前   80の件数 60の件数 やまだ 3  1

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

SQLビューに以下を記述してみます。 SELECT 名前, Sum(IIF(成績=80,1,0)) AS 80の件数, Sum(IIF(成績=60,1,0)) AS 60の件数 FROM テーブル GROUP BY 名前; 名前='やまだ' に限定するのであれば SELECT 名前, Sum(IIF(成績=80,1,0)) AS 80の件数, Sum(IIF(成績=60,1,0)) AS 60の件数 FROM テーブル WHERE 名前='やまだ' GROUP BY 名前; Sum(合計)を使って、成績 = ○○なら 1 でなければ 0 を IIF で判別すると件数に ※ 不都合あれば修正してください

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

80と60のルールが不明確。教科名があるならまだしも、MAXとMINでもなさそうですが、何? ピボットテーブルで、行見出しを[名前]、列見出しを[成績]にして「件数」をカウント。 「やまだ」に限定するなら、Where条件でよいかも。

kgyqk433
質問者

補足

お世話になります。 >80と60のルールが不明確。教科名があるならまだしも、MAXとMINでもなさそうですが、何? 文字列です。 >ピボットテーブルで、行見出しを[名前]、列見出しを[成績]にして「件数」をカウント。 >「やまだ」に限定するなら、Where条件でよいかも。 大変申し訳、ございません。本当に、ご存知でしたら、SQL文を教えて いただければ助かります。 よろしくお願いします。

関連するQ&A

  • ACCESS2000のSQLについて

    ACCESS2000のSQL文について質問です。 K情報テーブル:(支店(テキスト型),所属(テキスト),氏名(テキスト),ログ(テキスト),抽出件数(数値),処理日(日付型)) 支店 所属 氏名 ログ 抽出件数 処理日 ----------------------------------------- 関東 埼玉 太郎 A   50    2009/02/25 関西 大阪 次郎 B   15    2009/04/01 関東 埼玉 太郎 A   10    2009/03/05 関西 大阪 次郎 B   5    2009/04/06 東北 青森 三郎 C   2    2000/01/02 東北 青森 三郎 A   2    2000/01/02 ・ ・ ・ ----------------------------------------- 以上のテーブル情報を、SQL文にて抽出したいのですが、抽出条件が私には難解で解決の見通しが立ちません。ご教授をお願いします。 ***条件*** [ログ] = "A" のみ抽出。 現在日から過去3ヶ月前までのデータのみ抽出。 [氏名]ごと[ログ]の総合計。 [氏名]ごとの[抽出件数]の総合計。 [ログ]の総合計の上位30件を降順で。 順位にNo.をふる。 上記の条件で抽出したデータをを下記の作業テーブルに出力したと思っております。 作業テーブル:順位,所属,氏名,ログ件数,抽出件数 宜しくお願いします。

  • SQLで二つのテーブルを統合したい

    お世話になります。 Access2000のSQLで質問させて下さい。 下記のAとBのテーブルがある状態で、二つを統合した Cを生成したいのですが、どのようにSQLを作成したらよいでしょうか? お手数でもうしわけございませんが、SQL文で回答頂ければ助かります。 --テーブルA--- ID 名前 11 やまだ 12 さかもと --テーブルB--- ID 名前 25 きのした 26 つちや --C-- ID 名前 11 やまだ 12 さかもと 25 きのした 26 つちや

  • Microsoft AccessのSQL 抽出についての質問

    Microsoft AccessのSQL 抽出についての質問 今は手元にこのソフトがないのですが、 例えば、 <成績データ> 社員番号  名前  点数  0701   大橋   68  0702   田中   54  0703   斎藤   82  0704   松本   73 こんな感じのデータがあったとして、80点以上の人を抽出する場合、 そのSQL文っていうのはどうすればいいのでしょうか? SELECT ??? FROM 成績データ WHERE 点数>=80 って感じだと自分は考えているのですが、 これで正しいでしょうか?というかSELECTのところに何をいれればいいのかよくわかりません 教えてください。

  • ACCESSのSQLで数値型に変換するには

    こんにちわ。今SQLの書き方が分からなくて大変困っております。 ACCESS2000で、テーブルが一つあるとします。 テーブルの内容は、氏名・点数の2項目だとします。 点数が50点より大きい人を抽出したいのですが、 項目は全てSTRING型にしないといけないため、 単純に比較できません。抽出した項目を数値型に 変換して、比較したいのですが、どのように書いたらいいのでしょうか。 SELECT  Shimei , CAST(Tensuu AS NUMERIC) FROM   Table1 WHERE   Tensuu > 50; このようなクエリを書いてみましたがエラーが出てしまいます。 ORACLEではTO_NUMBERなどの関数があると思うのですが、 ACCESSではどのようにしたらいいのでしょうか?? よろしくお願いします。

  • SQLのカウントについて

    質問です。 テーブルAとBに下記データが存在した場合、AにいてBにいなかったデータは「0」AにいてBにもいた場合のデータはその件数を抽出するSELECT文を教えて下さい。 テーブルA   テーブルB A1       A1 A2       A1 A3       A1 A4       A3 A5       A4 ---------- 結果 ---------- A1 3 A2 0 A3 1 A4 1 A5 0

  • 他テーブルの同フィールドを結合する方法

    お世話になります。 Access2000で教えてください。 下記のようなテーブル1,2があります。 このテーブル1,2をひっつけて、 テーブル3を作成したいのですが、 どのように作成すればよいでしょうか? 可能でしたら、クエリで、 説明しやすいのでしたら、SQLでも 結構ですので宜しくお願い致します。 ----------------------------------- テーブル1 名前  1着数 やまだ 3 ----------------------------------- テーブル2 名前 2着数 やまだ 1 ----------------------------------- テーブル3 名前 1,2着数 やまだ 4

  • access SQLを基にしてフォームは作成できるか

    access で、VBAにSQLを記述し、 その抽出結果を基にしてフォームは作成できるのでしょうか? また、SQLを基にテーブルを作成し、テーブルを基にフォームを作成できるのでしょうか? いわゆる「検索」に利用できればと考えています。 よろしくお願いします。

  • 行数をカウントするSQLにつきまして

    行数をカウントするSQLにつきまして いつもお世話になっております。 下記の売上テーブルから みかん=3(行目) というようなデータを抽出するSQLはどのように記述したら良いのでしょうか? ・・・・売上テーブル・・・ 売上番号 品名 単価 101   りんご 100 102   りんご 100 103   みかん 150 104   りんご 100 105   みかん 150 106   メロン 250 postgre8.3のためrow_numberが使えません

  • 行数をカウントするSQLにつきまして

    行数をカウントするSQLにつきまして いつもお世話になっております。 下記の売上テーブルから りんご=3(行) みかん=2(行) メロン=1(行) というようなデータを抽出するSQLはどのように記述したら良いのでしょうか? ・・・・売上テーブル・・・ 売上番号 品名 単価 1     りんご 100 2     りんご 100 3     りんご 100 4     みかん 150 5     みかん 150 6     メロン 250

  • sql 個別に情報取得方法

    こんにちは、 A,Bテーブルがあり、Aテーブル.ID = Bテーブル.IDの状態で IDごとの最新の更新時間を一件づつ取得したいのですが SQLで抽出することは可能でしょうか? 取得したい例------------------ ID、TIME(タイムスタンプ) 1、1356200000 2、1356228139 Aテーブル---------- ID 1 2 Bテーブル---------- ID、TIME(タイムスタンプ) 1、1350000000 1、1356200000 1、1300000000 2、1356228139 2、1356000000

    • ベストアンサー
    • MySQL