• ベストアンサー

アクセス2003 集計『最後』

いつもお世話になっています。 <仕入記録テーブル>で商品Aを下記のように複数回入力してあります。(数字がズレてたらすいません。) | 仕入ID | 仕入年月日 | 商品名 | 数量 | 単価 |    76    2006/4/26       A      5     108    78    2006/4/28       A      5     108   253    2006/7/20       A     10     108   815    2006/11/10       A     10     120   843    2007/1/11       A      5     108   852    2007/1/12       A      2     120  1001    2007/2/19       A     10     120 クエリで<仕入記録テーブル>から各商品の最も最近の仕入単価を取り出したいと思い、デザインビューで<仕入記録テーブル>から<単価フィールド>を選択し集計方法を『最後』に設定しました。 すると表示された金額がなぜか108円になってしまいました。 やり方がおかしいのかと思いDLast関数というのも試してみたのですが、構文がイマイチ理解できずうまくいきませんでした。 仕入記録から仕入年月日の最も新しい仕入単価を出すにはどうしたらよいのでしょうか? よろしくお願いします。 

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

次は、実際のクエリのデザイン画面です。 フィールド:仕入単価|仕入年月日 テーブル_:仕入記録|仕入記録 並び替え_:_____________|_______________ 表示_______:______レ_____|_______________ 抽出条件_:____________|(SELECT Max(仕入年月日) FROM 仕入記録) SQLビューで見ると、次のようになるようです。 SELECT 仕入記録.仕入単価 FROM 仕入記録 WHERE (((仕入記録.仕入年月日)=(SELECT Max(仕入年月日) FROM 仕入記録))); 抽出条件にサブクエリを指定するということです。

その他の回答 (1)

noname#46899
noname#46899
回答No.1

「最後」というのは最後に入力されたデータのことです。入力データ内の日付が最後かどうかは関係ありません。インデックスなどで見た目の並び順を変えても同じです。 「仕入年月日」の値がMAXのレコードの「単価」を調べる式を設定することで、最近の仕入単価とすることができます。 http://support.microsoft.com/default.aspx?scid=kb;ja;208190

関連するQ&A