ACCESS97を使用しています。
SQLで、GROUP BY と、ORDER BYの両方を使用することは可能でしょうか?

Set DB = CurrentDb()
strSQL = "SELECT 製造番号 FROM 入庫データ WHERE "
strSQL = strSQL + "整理NO='" & Me.整理NO入力 & "'"
strSQL = strSQL + "GROUP by 製造番号" & ";"      ← ※
'strSQL = strSQL + "ORDER by 製造番号" & ";"

※部分に入れる記号がわかりません。

' ? ,?それとも順序が違うのでしょうか?

A 回答 (3件)

> クエリー式'製造番号ORDER by 製造番号’の構文エラー:演算子がありません 



GROUP by 製造番号 と ORDER by 製造番号
の間にスペースを入れてください。
    • good
    • 0
この回答へのお礼

上手く行きました。ありがとうございました。

お礼日時:2003/03/28 17:05

「クエリー式'製造番号ORDER by 製造番号’の構文エラー:演算子がありません」のエラーメッセージを正確に書かれているとしたら、「GROUP by 製造番号」の後ろに空白が入力されていないだけではないのでしょうか。



strSQL = strSQL + "GROUP by 製造番号 ORDER by 製造番号 ;"

上記の記述でよいと思うのですが。
    • good
    • 0

> SQLで、GROUP BY と、ORDER BYの両方を使用することは可能でしょうか?



可能です。
間に記号はいらないと思います。

strSQL = strSQL + "GROUP by 製造番号" & " "
strSQL = strSQL + "ORDER by 製造番号" & ";"

でダメでしたか?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

実行時エラー '3075'
クエリー式'製造番号ORDER by 製造番号’の構文エラー:演算子がありません 

とでてきます。別に原因があるのでしょうか?

お礼日時:2003/03/28 16:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSELECT 商品.* FROM 商品 ORDER BY 品番 group by 品番;

ACCESSのモジュールでSQLを実行すると
実行時のエラー
クエリ式’品番 group by [品番]’の構文エラー
:演算子がありません
が出ます。
WindowXPでACCESS2003で実行しています
品番は[品番]のように括弧でくくってもダメです
手がかりとなるアドバイスをおねがいします

Aベストアンサー

Accessでは
・項目に*を使用した場合、クエリにGROUP BYは使えません
・GROUP BYはORDER BYよりも前に書かなければなりません
・SELECT句の次に書いた項目は必ずGROUP BYで集計する必要があります
と言う制約があります。

ですので、4つの項目全部を出力したいなら
SELECT 品番,商品名,価格,商品グループ
FROM 商品
GROUP BY 品番,商品名,価格,商品グループ
ORDER BY 品番
とするしかありません。

品番が同一なら、商品名、価格、商品グループも同一なので、問題無い筈です。
(てゆ~か、商品名、価格、商品グループのどれかが違うのに品番が一緒だったら、品番の付け方が間違ってますね)

Q10歳単位での GROUP BY

ACCESS2000を使用しています。
従業員データというテーブルの情報を元に、年代別(10歳ごと)の円グラフを作成したいと思っています。
(・20~29歳・30~39歳・40~49歳・50歳以上)
どのようにSQL文を書けばいいのでしょうか。
よろしくお願いいたします。

※今回のテーブルには生年月日ではなく、年齢の数字が直接入っています。
もし生年月日から作成するにはBETWEEN関数と組合せればいいのでしょうか?
2つも質問してすいません。

Aベストアンサー

年代の計算は、年齢\10で求まります。
SQLの書き方もいくつかあると思いますが、

SELECT IIf(年齢\10>=5,5,年齢\10) AS 年代
FROM 従業員データ
GROUP BY IIf(年齢>=5,5,年齢\10);

もしくは、

select 年代
from
(SELECT IIf(年齢\10>=5,5,年齢\10) AS 年代
FROM 従業員データ)
GROUP BY 年代;

生年月日の求め方は、下の方のを参照してみてください。

QACCESSユニオンクエリでORDER BYエラー

お世話になります。

クエリAとBがあり、それぞれのクエリでは製品コードの先頭6文字(製品コード先頭6文字: Left([マスター]![製品コード],6))の昇順で並び替えしてます。
個々のクエリでは問題なく並び替えされるのですが、この二つのクエリをユニオンクエリで結合するとエラーとなってしまいます。

『ORDER BY 式 (Left([マスター]![製品コード],6))にクエリに選択されていないフィールドが含まれています。ORDER BY 式 (Left([マスター]![製品コード],6))に含めることができるのは、最初のクエリで要求されたフィールドだけです。』

となります。

調べたところ、『ユニオン クエリで使用されるテーブルにおいて、1 つ以上のフィールド名を変更した場合に発生します。 』ということでした。
http://support.microsoft.com/kb/282322/ja

確かに、それぞれのクエリでフィールド名を変更しているのですが・・・このような場合、どのようにすればうまく結合できるのでしょうか。それとも不可能なのでしょうか。。

以上、よろしくお願い致します。

お世話になります。

クエリAとBがあり、それぞれのクエリでは製品コードの先頭6文字(製品コード先頭6文字: Left([マスター]![製品コード],6))の昇順で並び替えしてます。
個々のクエリでは問題なく並び替えされるのですが、この二つのクエリをユニオンクエリで結合するとエラーとなってしまいます。

『ORDER BY 式 (Left([マスター]![製品コード],6))にクエリに選択されていないフィールドが含まれています。ORDER BY 式 (Left([マスター]![製品コード],6))に含めることができるのは、最初のクエリで要求された...続きを読む

Aベストアンサー

SELECT 標準コード.ID, 標準コード.地域コード, Left([地域コード],2) AS ひだり
FROM 標準コード
union all
SELECT 標準コード.ID, 標準コード.地域コード, Left([地域コード],2) AS ひだり
FROM 標準コード
ORDER BY Left([地域コード],2);
ならエラーになりますが
これを
ORDER BY Left([地域コード],2);

ORDER BY ひだり;
ならエラーにはなりませんでした。

Q「SELECT ~  FROM テーブル名」の後に続く句は「WHERE句」と「ORDER BY句」以外にありますか?

最近アクセスのSQL文を学びました。

選択クエリのSQL文で
「SELECT ~  FROM テーブル名」
の後に続く句は
「WHERE句」と
「ORDER BY句」以外にありますか?

よろしくお願いします。

Aベストアンサー

#1 さんの回答に補足です。

>FROM tableexpression [, ...]

複数テーブルの結合は、このヘルプに書かれているように

FROM TBL_A , TBL_B

のようにも書けますがレガシーな表記です。
Mictosoft Jet SQLではむしろ、以下のANSI表記が使われます。

INNER JOIN ~ ON
LEFT JOIN ~ ON
等。

こんな感じです。

FROM TBL_A INNER JOIN TBL_B
ON.TBL_A.カラム = ON.TBL_B.カラム

クエリデザイナで作成したクエリをSQLエディタで見るとわかります。

Q文を繋げる="&○○&"の使い方

文章を繋げる際に用いる&を使って
間に日付を挟みたいのですが、
A1セルに「=TODAY()」を入力し、
="有休残日数情報("&A1&"現在)"とやると、どうしても
=有休残日数情報(39261現在)と表記されます。
ちゃんと今日の(6/28現在)と表示するには
どうすればよいのでしょうか?
教えて下さい。宜しくお願い致します。

Aベストアンサー

以下の数式で

="有休残日数情報("&TEXT(A1,"M/D")&"現在)"


人気Q&Aランキング

おすすめ情報