アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessクエリで左から2列分をグループ化した時、一番左の列の値が何回も表示されないようにしたいです。具体的には、一番左の列が上から順に朝・朝・朝・昼・昼・昼・夜・夜というふうにグループ化されます。これは左から2列目のフィールドが1・2・3というふうになっていて、朝1・朝2・朝3のレコードがそれぞれ一件ずつ表示されているからだと思いますが、いちばん左の列の朝の表示を先頭の一回だけにしたいです。お願いします。

A 回答 (5件)

質問の意味がよく理解できません。


そこで、確認します。

tab1:

fld1_fld2
昼___1
昼___2
昼___3
朝___1
朝___2
朝___3
夜___1
夜___2
夜___3

クエリ1:

fld1_fld2
朝___1
昼___1
昼___2
昼___3
夜___1
夜___2
夜___3

こういうクエリを作成したいということですか?

※この場合、GROUP BY を使う意味がありませんよね。
※そこが判りません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
以下のように集計したいです。
tab1:

fld1_fld2
昼___1
昼___1
夜___2
朝___1
昼___3
昼___2
昼___3
朝___1
夜___2
朝___2
朝___3
夜___1
夜___2
夜___3


クエリ1:(集計)
fld1_fld2_fld3(カウント)
朝___1 2 
朝___2 1
朝___3 1
昼___1 2
昼___2 1
昼___3 2
夜___1 1
夜___2 3
夜___3 1

この時、一番左の列の表示を一回にしたいということです。(朝一回、昼一回、夜一回)↓のようなイメージです。
朝_1 2
  _2 1
  _3 1
昼_1 2
 _2 1
 _3 2
夜___1 1
 ___2 3
 ___3 1

お礼日時:2008/10/17 16:39

>いちばん左の列の朝の表示を先頭の一回だけにしたいです。


こういう考え方はExcelの考え方です
そもそもデータベースのテーブルにレコードの位置なんてものはありませんから
「先頭」というものが存在しません
入っているものを削除してしまうとそこにはなにも入っていないということになります
朝の2つ目だとか昼の2つ目だとかという情報は消えてしまいますよ
    • good
    • 0

出来ますが・・・。


でも、フォームやレポートでは重複データ非表示機能がありますから・・・。
で、どうしてもということなら、
それぞれのグループの最小かどうかを判定して出力データを翻訳することになります。
    • good
    • 0

クロス集計クエリ(ウィザード)で、fld1を行見出し、fld2を列見出しにして、fld3を集計すれば、すっきりした形で表示できるのではないでしょうか。

    • good
    • 0

> クエリ1:(集計)


> fld1_fld2_fld3(カウント)
> 朝___1 2 
> 朝___2 1
> 朝___3 1
> 昼___1 2
> 昼___2 1
> 昼___3 2
> 夜___1 1
> 夜___2 3
> 夜___3 1

この クエリ1 を基にクエリを作成して、下記の演算フィールドを作成します。

fld1: IIf(fld2=1,クエリ1.fld1,"")

あとは、fld2, fld3 を表示させてください。

SQLでは、

SELECT IIf(fld2=1,クエリ1.fld1,"") As fld1, fld2, fld3
FROM クエリ1
ORDER BY fld1, fld2;

他の方も言われてますが、データベースとしては意味の無いデータとなりますし、見かけだけのことなら、レポートなら、「重複データ非表示」プロパティで簡単にできます。
    • good
    • 0

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