電子書籍の厳選無料作品が豊富!

初めて質問いたします。
デザインビューの程度ですが、よろしくお願いいたします。

クエリで以下のようにデータが並んでいます。フィールド1のデータごとに年月昇順ソート

フィールド1 フィールド2 フィールド3 フィールド4
111    1200   あああ    年月
111    1500   あああ    年月
111    1000   いいい    年月

これをクロス集計クエリでフィールド1でグループ化してフィールド2の合計をしています。
フィールド3のデータは、最後の「いいい」を持って来たいので、最後と指定しています。
ところが、どうも「いいい」を持ってくることができず、「あああ」を持ってきているようなのです。
クエリの並びが集計クエリにすると変わるのでしょうか?
集計クエリの最後というのは、どのように考えれば良いのでしょうか?
よろしくお願いいたします。m(._.*)mペコッ

A 回答 (4件)

No.3の続きです。


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

#2の続きです。


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

参考URL:http://support.microsoft.com/default.aspx?scid=k …

この回答への補足

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

補足日時:2005/07/21 20:21
    • good
    • 0
この回答へのお礼

検索までして下さって、ありがとうございました。(o^∇^o)ノ

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

お礼日時:2005/07/18 17:10

#1です。


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

 クロス集計ではなく通常の集計ですね?


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

この回答への補足

ご返答ありがとうございます。
質問が悪かったのですが、フィールド4の年度ごとに金額の集計をしています。

出来上がりを
フィールド1 フィールド2 フィールド3 フィールド4
111      いいい    年度1の合計  年度2の合計

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

補足日時:2005/07/18 11:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す