こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセスSQL

アクセス初心者です。

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

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

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

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

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

投稿日時 - 2006-07-04 06:12:02

QNo.2254351

困ってます

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

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.売上日;

が所望なのかなとも考えられます。

投稿日時 - 2006-07-04 09:19:29

お礼

参考になりました。ありがとうございました。

投稿日時 - 2006-07-07 00:39:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

s_husky です。

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

投稿日時 - 2006-07-04 17:19:14

ANo.2

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

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

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

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

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

参考URL:http://support.microsoft.com/kb/208190/ja

投稿日時 - 2006-07-04 14:41:22

お礼

参考になりました。ありがとうございました。

投稿日時 - 2006-07-07 00:40:21

あなたにオススメの質問