次のように同じ日付の中に複数の点数がある場合、
各日の最大点だけを表示するクエリを作りたいのですが、どのようにSQLを書けばよろしいでしょうか?
SELECT MAX(点数) , 日付 FROM テーブル;
↑のような文では、エラーになってしまいました・・・
---------------------
点数日付
---------------------
122005/11/22
232005/11/24
742005/11/24
202005/11/30
522005/11/30
---------------------
以上、よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
>クエリに対しては、上記のようなSQLが使えないのでしょうか?
元の日付データは、秒まである詳細なものなので、クエリで元々「Format(date,'yyyy-mm-dd') AS 日付」として出しています。
このクエリを使って、さらにクエリを作ろうとしたのですが。。。。
・No.4さんのご指摘の通り普通に使えますよ。推測ですが、SQLでの型変換、不必要なリレーションシップ等を設定している為に、判断が出来なくなりエラーが出るのかもしれませんネ(^^;
・再度、ご回答があるかは別にしても、具体的なSQL文を貼り付け、何をどう抽出したいのかを具体的に記載されて方が良いですよ。判っている人からすれば、うまく抽出できる構文しか思いつきませんから。。。(^^;
・気づき…日付をあえてフォーマットし直さなくても、日付型で比較抽出されれば宜しいかと思います。
元々の設計でどうしようもないのかもしれませんが、この様な事を頻繁に行わなければならないのであれば、非効率な処理があちこちで発生します。
元々の日付を文字型8桁などにされた方が良いのかもしれません。
又、クエリをクエリで抽出すると、ご記載の通り不具合が出る事もあると思います。処理の効率化を考えて、一旦途中までのデータをワークDBにでも抽出し、そのDBからクエリを作成するのが良いかもしれませんネ。
すっかりハマってしまいましたが、なんとかできました。
「グループ化や集計に関係のないフィールドを表示する」のが、普通はできないということが理解できておらず、そこにひっかかっていたようです。。。
ありがとうございました!
No.6
- 回答日時:
#2 です。
> クエリで元々「Format(date,'yyyy-mm-dd') AS 日付」として...
date ってフィールド名? それとも関数? 予約語みたいなので、エラーの心配
がありますね、、
もし、フィールド名なら SQL ではそれを明示的に [ ] を付けてみて下さい。
それから、 Format を含む SQL を見せていただけると話が早そうですよ。
それでは、、、
元のテーブルで「秒まである詳細なもの」のフィールド名を「元日付」とするな
ら、次のような SQL か、またはサブクエリを使うかです。
下記の SQL でテーブル名やフィールド名をご自分で書き換えて、SQL ビューに
貼り付けてみて下さい。
SELECT Max([点数]) AS [最高点], Format$([元日付],'yyyy-mm-dd') AS [日付]
FROM [テーブル名]
GROUP BY Format$([元日付],'yyyy-mm-dd');
参考)別解:サブクエリ
SELECT MAX([点数]) AS 最高点, [日付]
FROM (SELECT [点数], Format$([元日付],'yyyy/mm/dd') AS [日付] FROM [テーブル名])
GROUP BY [日付];
※ FROM 句にサブクエリの結果を使っています。
ありがとうございました。
ひっかかっていた場所が分かりました。
↓でいうnameで引っかかっていたようです・・・
SELECT Max(テーブル1.score) AS 点数の最大, Format([date],'yyyy-mm-dd') AS 日付, First(テーブル1.name) AS 名前
FROM テーブル1
GROUP BY Format([date],'yyyy-mm-dd');
ありがとうございました!
No.4
- 回答日時:
別に作ってあるクエリを使う
別のクエリに日付のフォーマットしたフィールドと点数のフィールドがある場合
SELECT Max([クエリ名].点数) AS 最大点,[クエリ名].日付
FROM [クエリ名]
GROUP BY [クエリ名].日付;
で出来ませんか?
No.3
- 回答日時:
点数・日付の並びで良ければ
SELECT Max(点数) AS 最大点 ,日付
FROM テーブル名
GROUP BY 日付;
または
SELECT Max(テーブル名.点数) AS 最大点 ,テーブル名.日付
FROM テーブル名
GROUP BY テーブル名.日付;
Accessの場合、前者でSQL記述してもJetで自動的に後者の記述になります。
ありがとうございます!
ご指摘どおり行ったら、できました。
ただし、サンプルで作ったテーブルに対してはできるのですが、もともと適用したかったクエリーでは、ダメでした。。。
下の方への質問とかぶりますが、クエリに対してクエリを作るときは、何か制限があるんでしょうか。。。。
No.2
- 回答日時:
こんにちは。
KenKen_SP です。次のような SQL になります。AS 句の後ろは集計フィールド名で、
適当に名付けました。別に指定しなくても ACCESS ではエラーに
はなりません。が、本来はつけるべきです。
SELECT MAX([点数]) AS [最高点], [日付]
FROM [テーブル名]
GROUP BY [日付];
ありがとうございます!
教えていただいた方法でできたのですが、
クエリに対して上記SQLを使ってクエリを使おうとすると、失敗してしまいます。
クエリに対しては、上記のようなSQLが使えないのでしょうか?
元の日付データは、秒まである詳細なものなので、クエリで元々「Format(date,'yyyy-mm-dd') AS 日付」として出しています。
このクエリを使って、さらにクエリを作ろうとしたのですが。。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excel→Accessへの日付データの...
-
アクセスで月単位の抽出
-
Accessのデータ型の日付/時刻型...
-
VBA 別シートの同じ日付の欄に...
-
【vba】日付の形式が勝手に変わ...
-
Excleピボットでデータのない部...
-
Accessの日付時刻型から日付、...
-
Accessで日付の比較がうまくい...
-
日付/時刻型フィールドで時刻デ...
-
sql update で 抽出条件データ...
-
アクセス:既定値に土日含まず...
-
Access クエリのグループ化で合計
-
指定日付を起点にして最新日付...
-
ピボットテーブルの日付を週ご...
-
ACCESS 2つのテーブルの最大値...
-
Access dcount 複数条件
-
アクセスで月ごとの集計
-
BCPでCSV内の文字列をテーブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
アクセスで月単位の抽出
-
BCPでCSV内の文字列をテーブル...
-
Accessの日付時刻型から日付、...
-
VBA 別シートの同じ日付の欄に...
-
Excel→Accessへの日付データの...
-
Access クエリで、レコードの無...
-
指定日付を起点にして最新日付...
-
アクセス:既定値に土日含まず...
-
【エクセル】指定した日付に一...
-
ACCESSの空白をカウントする
-
Accessで日付の比較がうまくい...
-
【vba】日付の形式が勝手に変わ...
-
前のレコードの合計に現レコー...
-
エクセル-過去6カ月分の合計を...
-
Accessのデータ型の日付/時刻型...
-
【Accessで困っています...
-
アクセス97のVBAで日付項目をヌ...
おすすめ情報