- 締切済み
クロス集計クエリの最後のデータについて
初めて質問いたします。 デザインビューの程度ですが、よろしくお願いいたします。 クエリで以下のようにデータが並んでいます。フィールド1のデータごとに年月昇順ソート フィールド1 フィールド2 フィールド3 フィールド4 111 1200 あああ 年月 111 1500 あああ 年月 111 1000 いいい 年月 これをクロス集計クエリでフィールド1でグループ化してフィールド2の合計をしています。 フィールド3のデータは、最後の「いいい」を持って来たいので、最後と指定しています。 ところが、どうも「いいい」を持ってくることができず、「あああ」を持ってきているようなのです。 クエリの並びが集計クエリにすると変わるのでしょうか? 集計クエリの最後というのは、どのように考えれば良いのでしょうか? よろしくお願いいたします。m(._.*)mペコッ
- みんなの回答 (4)
- 専門家の回答
みんなの回答
No.3の続きです。 解決方法2のやり方を試されたということは、前任の方のクエリーを修正されたのですね? 前任の方のクエリーを修正してよいのなら、No.1のやり方でできると思うのですが… 即ち、年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値を取得すればよいのではないでしょうか? 年月のフィールドとあああのフィールドをこの順に連結したフィールドの最大値においては、年月が最大になるはずですので。
#2の続きです。 検索してみたら、参考URLを見つけました。 「先頭」や「最後」というのは、 >レコードがテーブルに入力されたときの順序 に基づくようですね。
#1です。 手元で実験してみましたが、元テーブルをソートしてもだめでした。格納順と書いたのは、位置的な意味ではなく、時間的な意味です。いずれにしても推測に過ぎませんが。 クエリーを変更せずに実現する方法は、申し訳ありませんが判りかねます。
クロス集計ではなく通常の集計ですね? 手元で確認しましたが、確かにクエリーの順序ではなく、どうも元テーブルの格納順における「最後」のような気がします。 新たに、「フィールド4&フィールド3」というフィールド(フィールド4とフィールド3をこの順に文字列としてつないだフィールド)を作って、そのフィールドの「最大」を指定してはいかがでしょうか。
補足
ご返答ありがとうございます。 質問が悪かったのですが、フィールド4の年度ごとに金額の集計をしています。 出来上がりを フィールド1 フィールド2 フィールド3 フィールド4 111 いいい 年度1の合計 年度2の合計 これは、前任者が作ったもので、私はフィールド1ごとの最終年月レコードを抽出してからフィールド2の結果を出しました。 その結果と前任者の上記クエリの結果が違うので気付きました。 私のクエリを追加して持ってくるのは簡単なのですが、できるなら前任者のクエリをそのまま使いたいのです。 教えていただいた「元テーブルの格納順における「最後」」と言うのは、そのデータの大元テーブルをソートすればできるということでしょうか? 間にクエリがたくさん入っていますが・・・ よろしくお願いいたします。
お礼
検索までして下さって、ありがとうございました。(o^∇^o)ノ レコードが入力されたときの順序は、内部的に持っているという事でしょうか? その点が今一よく分かりませんが・・・ 解決方法2のやり方を明日にも試してみます。 上手くいくと嬉しいです。 ありがとうございました。
補足
解決方法2のやり方を試してみました。選択クエリではできるのですが、クロス集計クエリではできませんでした。私の理解ややり方が悪いのかもしれません。わからないままです。