• 締切済み

クロス集計クエリの最後のデータについて

初めて質問いたします。 デザインビューの程度ですが、よろしくお願いいたします。 クエリで以下のようにデータが並んでいます。フィールド1のデータごとに年月昇順ソート フィールド1 フィールド2 フィールド3 フィールド4 111    1200   あああ    年月 111    1500   あああ    年月 111    1000   いいい    年月 これをクロス集計クエリでフィールド1でグループ化してフィールド2の合計をしています。 フィールド3のデータは、最後の「いいい」を持って来たいので、最後と指定しています。 ところが、どうも「いいい」を持ってくることができず、「あああ」を持ってきているようなのです。 クエリの並びが集計クエリにすると変わるのでしょうか? 集計クエリの最後というのは、どのように考えれば良いのでしょうか? よろしくお願いいたします。m(._.*)mペコッ

みんなの回答

noname#11841
noname#11841
回答No.4

No.3の続きです。  解決方法2のやり方を試されたということは、前任の方のクエリーを修正されたのですね?  前任の方のクエリーを修正してよいのなら、No.1のやり方でできると思うのですが…  即ち、年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値を取得すればよいのではないでしょうか?  年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値においては、年月が最大になるはずですので。

noname#11841
noname#11841
回答No.3

#2の続きです。  検索してみたら、参考URLを見つけました。  「先頭」や「最後」というのは、 >レコードがテーブルに入力されたときの順序 に基づくようですね。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;208190
mikeko_007
質問者

お礼

検索までして下さって、ありがとうございました。(o^∇^o)ノ レコードが入力されたときの順序は、内部的に持っているという事でしょうか? その点が今一よく分かりませんが・・・ 解決方法2のやり方を明日にも試してみます。 上手くいくと嬉しいです。 ありがとうございました。

mikeko_007
質問者

補足

解決方法2のやり方を試してみました。選択クエリではできるのですが、クロス集計クエリではできませんでした。私の理解ややり方が悪いのかもしれません。わからないままです。

noname#11841
noname#11841
回答No.2

#1です。  手元で実験してみましたが、元テーブルをソートしてもだめでした。格納順と書いたのは、位置的な意味ではなく、時間的な意味です。いずれにしても推測に過ぎませんが。  クエリーを変更せずに実現する方法は、申し訳ありませんが判りかねます。

noname#11841
noname#11841
回答No.1

 クロス集計ではなく通常の集計ですね?  手元で確認しましたが、確かにクエリーの順序ではなく、どうも元テーブルの格納順における「最後」のような気がします。  新たに、「フィールド4&フィールド3」というフィールド(フィールド4とフィールド3をこの順に文字列としてつないだフィールド)を作って、そのフィールドの「最大」を指定してはいかがでしょうか。

mikeko_007
質問者

補足

ご返答ありがとうございます。 質問が悪かったのですが、フィールド4の年度ごとに金額の集計をしています。 出来上がりを フィールド1 フィールド2 フィールド3 フィールド4 111      いいい    年度1の合計  年度2の合計 これは、前任者が作ったもので、私はフィールド1ごとの最終年月レコードを抽出してからフィールド2の結果を出しました。 その結果と前任者の上記クエリの結果が違うので気付きました。 私のクエリを追加して持ってくるのは簡単なのですが、できるなら前任者のクエリをそのまま使いたいのです。 教えていただいた「元テーブルの格納順における「最後」」と言うのは、そのデータの大元テーブルをソートすればできるということでしょうか? 間にクエリがたくさん入っていますが・・・ よろしくお願いいたします。

関連するQ&A