- ベストアンサー
アクセスSQL
アクセス初心者です。 テーブルAに(売上日、商品A売上金額、商品B売上金額、支店)フィールドがあります。 売上日フィールドは重複あります。 次のクエリを定義するSQLはどのように記載すればいいでしょうか? 第一フィールド フィールド名:売上日リスト 内容:テーブルAの売上日を重複無しで全種類抜き出し日付順ソート。 第二フィールド フィールド名:商品Aラスト売上金額 内容:第一フィールドの売上日グループで、最後の商品A売上金額 第三フィールド フィールド名:商品Bラスト売上金額 内容:第一フィールドの売上日グループで、最後の商品B売上金額 以上よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
1、SELECT DISTINCT A.売上日 FROM A ORDER BY A.売上日; 2、SELECT LAST(A.商品A売上金額) FROM A WHERE A.売上日 = (SELECT MAX(A.売上日) FROM A); 3、SELECT LAST(A.商品B売上金額) FROM A WHERE A.売上日 = (SELECT MAX(A.売上日) FROM A); ちなみに、 SELECT FIRST(A.商品A売上金額) FROM A WHERE A.売上日 = (SELECT Max(A.売上日)FROM A); で最初! なお、2、3の回答として、 SELECT A.売上日, LAST(A.商品A売上金額) FROM A GROUP BY A.売上日; が所望なのかなとも考えられます。
その他の回答 (2)
s_husky です。 No.2さんと同じような疑問ですが... なぜ、不確定な First、Last を求めるのかが今一つ理解できません。 データの登録・削除を繰り返せば、それらは変化すると思いますが...
- CHRONOS_0
- ベストアンサー率54% (457/838)
回答の前に、アップされたテーブルは問題ありですよ 商品や支店が増えた場合テーブルを改造しなければなりません テーブル改造はできるだけ避けるように設計するべきです [店別商品別売上](売上日、支店CD、商品CD、売上金額) のようなテーブルにするところでしょうね >ラスト売上金額 売上日の抽出条件欄に In (select max(売上日) from テーブルA) なおこのようなときにLastやFirstは使えません 詳しくは,下の参考URLを見てください First および Last 関数が期待どおりのレコードを返さない
お礼
参考になりました。ありがとうございました。
お礼
参考になりました。ありがとうございました。