• ベストアンサー
  • 困ってます

アクセスSQL

  • 質問No.2254351
  • 閲覧数105
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (9/27)

アクセス初心者です。

テーブルAに(売上日、商品A売上金額、商品B売上金額、支店)フィールドがあります。
売上日フィールドは重複あります。

次のクエリを定義するSQLはどのように記載すればいいでしょうか?
第一フィールド
フィールド名:売上日リスト
内容:テーブルAの売上日を重複無しで全種類抜き出し日付順ソート。

第二フィールド
フィールド名:商品Aラスト売上金額
内容:第一フィールドの売上日グループで、最後の商品A売上金額

第三フィールド
フィールド名:商品Bラスト売上金額
内容:第一フィールドの売上日グループで、最後の商品B売上金額

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

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

  • 回答No.1
  • ベストアンサー
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.売上日;

が所望なのかなとも考えられます。
お礼コメント
hiroshi77777

お礼率 33% (9/27)

参考になりました。ありがとうございました。
投稿日時:2006/07/07 00:39

その他の回答 (全2件)

  • 回答No.3
s_husky です。

No.2さんと同じような疑問ですが...
なぜ、不確定な First、Last を求めるのかが今一つ理解できません。
データの登録・削除を繰り返せば、それらは変化すると思いますが...
  • 回答No.2

ベストアンサー率 54% (457/838)

回答の前に、アップされたテーブルは問題ありですよ
商品や支店が増えた場合テーブルを改造しなければなりません
テーブル改造はできるだけ避けるように設計するべきです

[店別商品別売上](売上日、支店CD、商品CD、売上金額)

のようなテーブルにするところでしょうね

>ラスト売上金額
売上日の抽出条件欄に
In (select max(売上日) from テーブルA)

なおこのようなときにLastやFirstは使えません
詳しくは,下の参考URLを見てください
First および Last 関数が期待どおりのレコードを返さない
お礼コメント
hiroshi77777

お礼率 33% (9/27)

参考になりました。ありがとうございました。
投稿日時:2006/07/07 00:40
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

ピックアップ

ページ先頭へ