ACCESS97において

フィールド数 複数(仮にA~E)
レコード数  複数
値    3or2or1の時の

フィールドAにおける3のレコード数
        2のレコード数
        1のレコード数
これをフィールドA~Eすべてについて
知りたいのですが、良い方法を知りませんか?

A 回答 (2件)

Hk2001さんと同じやり方で、Countを使う方法もあります。



SELECT Count(IIf([A]=1,1,Null)) AS A1,
Count(IIf([A]=2,1,Null)) AS A2,
Count(IIf([A]=3,1,Null)) AS A3,
Count(IIf([B]=1,1,Null)) AS B1,
Count(IIf([B]=2,1,Null)) AS B2,
Count(IIf([B]=3,1,Null)) AS B3,
Count(IIf([C]=1,1,Null)) AS C1,
Count(IIf([C]=2,1,Null)) AS C2,
Count(IIf([C]=3,1,Null)) AS C3
FROM テーブル1;

Countは、値がNullのものは数えないことを利用したものです。
ですから、

Count(IIf([A]=1,1,Null)) AS A1



Count(IIf([A]=1,[A],Null)) AS A1

でもかまいません。

Sumと同じように結果が返ってきますが、レコード数が0の場合、Sumでは、Nullが返ってくるところ、Countでは0が返ってきます。
必ず複数レコードあるのであれば、結果は同じです。
    • good
    • 0

クエリでいいのですか?


どんな、結果で答えがほしいのかわかりません。
クエリで結果が知りたいのであれは
IIfの関数をしようしては?

テーブル名をテーブル1で作成
フィールド名 A データ型:テキスト
B データ型:テキスト
C データ型:テキスト
で定義
クエリで以下の構文を使ってみてください。
参考位にはなるかも

SELECT Sum(IIf([A]='1',1,0)) AS A1,
Sum(IIf([A]='2',1,0)) AS A2,
Sum(IIf([A]='3',1,0)) AS A3,
Sum(IIf([B]='1',1,0)) AS B1,
Sum(IIf([B]='2',1,0)) AS B2,
Sum(IIf([B]='3',1,0)) AS B3,
Sum(IIf([C]='1',1,0)) AS C1,
Sum(IIf([C]='2',1,0)) AS C2,
Sum(IIf([C]='3',1,0)) AS C3
FROM テーブル1;
    • good
    • 0

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


人気Q&Aランキング

おすすめ情報