• 締切済み

Acess2003で複雑なSQL?

Access2003で以下のSQLを実行させることはできるのでしょうか? 直接SQLで実行する方法と、Access独特の両方で実行する方法が知りたいです。 select name, count(*) from テーブル group by name order by 2 desc;

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>order by 2 desc この「2」というのはフィールド名ですか? だったら order by [2] desc と[]括弧で囲んでください SQLビューにSQLを書き込むとクエリが出来上がります SQLを直接実行する方法はありません VBAでOpenQueryとかRunSQLを使います

関連するQ&A

  • SQLの書き方

    select A.NO, A.NAME, count(B.TEN) FROM T1 A, T2 B GROUP BY A.NO ORDER BY 3 DESC 結果として以下のようになってほしいのですが、どのようにSQLを書けばよいのでしょうか? 結果 NO | NAME | TEN ---+------+----- 3 + 上村 + 40 1 + 吉田 + 11 2 + 浅野 + 6 T1テーブル NO | NAME ---+-------- 1 + 吉田 2 + 浅野 3 + 上村 T2テーブル NO | TEN ---+-------- 1 + 10 2 + 5 3 + 0 1 + 1 2 + 1 3 + 40

  • 割合(パーセント)を求めるにはどのようにSQLを書けばよいのでしょうか?

    SQLで グループ毎にカウントした数でなくて割合を求めたいのです。 select name, count(*) from データベース名 group by name order by 2 desc; とすると、以下のように200件あるデータで グループ(名前)毎に個数が表示されますが、 田中 70 上村 120 橘川 10 下のように割合(パーセント)を求めるにはどのようにSQLを書けばよいのでしょうか? 田中 70 35% 上村 120 60% 橘川 10 5%

    • ベストアンサー
    • MySQL
  • Accessの選択クエリで

    アクセス2003で選択クエリでGROUP BYを使ったSQLを書きたいのですが、 count部は表示させなくて、グループのみ表示させる方法はありますか? SELECT NAME, COUNT(NAME) FROM CLASS_A GROUP BY NAME; CLASS_AというテーブルにあるNAMEの一覧を取得したいです。 グループを使った場合と、グループを使わない場合の両方について教えて欲しいです。

  • SQL count 別名を条件に使用

    いつもお世話になっております。 標題についてご教授頂きたく質問させて頂きました。 [SQL} select A, B, count(*) as cnt from product where A=1 and cnt > 2 group by A order by cnt desc とこのようにSQLを記述して実行したのですが、 cnt>2でエラーが出ます。 order by には count の別名を使用できるのですが、 where句やHAVINGでは使えません。 この場合 cont(*)>2 またはcount(項目名)>2 としなければならないのでしょうか

  • 秀丸でSQLを書く際に SQLの予約語だけ大文字

    秀丸でSQLを書く際に SQLの予約語だけを、大文字に変換するよい方法は? たとえば select * from table_1 where id=1 order by id desc; と書いて、マクロを起動すると SELECT * FROM talbe_1 WHERE id=1 ORDER BY id DESC; となるようにするよい方法はありませんか? また、予約語が「強調」されると尚良いです。

  • 複雑なcountについて

    val | num ----------- 9984 | 1 1234 | 1 9876 | 1 4567 | 1 9984 | 1 1234 | 1 9984 | 1 以上のようなテーブルで SELECT COUNT(*) FROM table_name WHERE val = 9984 SELECT COUNT(*) FROM table_name WHERE val = 1234 SELECT COUNT(*) FROM table_name WHERE val = 9876 SELECT COUNT(*) FROM table_name WHERE val = 4567 のように4つ実行することなく1度に 9984 => 3 1234 => 2 9876 => 1 4567 => 1 という結果を得たいのですが方法はありますでしょうか? ご教示お願いいたします。

  • SQL 件数取得を速くしたい

    SQLでテーブルなどからSELECTされた件数を得る際に、 select count(*) from ~ 等とするかと思いますが、この結果が返ってくるのが遅くて困っています。 少しでも速く件数を得たいのですがどのような方法がありますでしょうか? 教えてください。 私が使っている環境はOracle 8iで 特に今回はgroup byを含むビューからの検索を行おうとしています。

  • SQLのcount()とgroup by

    以下のようなテーブルがあったとき、 tbl1 id | score 1 | 100 1 | 200 1 | 300 2 | 200 2 | 100 3 | 300 3 | 400 3 | 500 3 | 600 idでまとめて個数を出すとすると、 SELECT count(*) FROM tbl1 group by id とすれば count(*) 3 2 4 と結果が返ってきますが、この結果にidを足して id | count(*) 1 | 3 2 | 2 3 | 4 というようなSQLはどうやって書けばいいのでしょうか? MySQLでは、 SELECT id, count(*) FROM tbl1 group by id と書けるのですが、これは標準的なSQLではNGなそうなので、気になって質問しました。 よろしくお願いします。

  • SQLの書き方を教えて!

    select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd のようにSUMで集計を行うSQLを発行する時に,同時にkingak順にsortすることは可能なのでしょうか? select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd order by SUM(kingak) としたいところですが,これではエラーになりますね。 SQLでは解決できないんでしょうか?

  • SQL文作成のお願い

    前提として下記のようなテーブルがあります。 テーブル名:test フィールド: 1)id: varchar, not null 2)name: varchar 3)date: timestamp with time zone, not null このテーブルに下記のようなレコードがあります。 '00001', 'A', '2005-01-01 00:00:00' '00001', 'B', '2005-07-01 00:00:00' '00001', 'C', '2005-11-01 00:00:00' '00002', 'X', '2005-01-20 00:00:00' '00002', 'Y', '2005-07-20 00:00:00' '00002', 'Z', '2005-11-20 00:00:00' ■今やりたいこと このテーブルからidごとにdateフィールド値が最近のレコードを取得したい。 ■やってみたこと 下記SQLを発行しました。 >select id, max(date) from test group by id order by id 結果==> 00001 2005-11-01 00:00:00 00002 2005-11-20 00:00:00 実際はnameフィールドの値も取得したいのですが、group by句を使うとフィールド指定ができませんでした。 ■だめだったSQL select id, name, max(date) from test group by id order by id どのようにSQLを書けばよろしいでしょうか?

専門家に質問してみよう