• ベストアンサー

Access97のクエリー(sql文)について

[A]テーブルに[CODE.DATE.CHK]とフィールドがあります 内容は、 [CODE][DATE][CHK] 01.2007/06/01.0 01.2007/06/10.1 01.2007/06/11.1 02.2007/05/01.0 02.2007/05/10.1 と、します。 結果を 01.3.2 02.2.1  と、したいのです。 つまり、[DATE]の行数と、[CHK]が1の件数が とりたいのです。 SELECT A.CODE, Count(A.DATE) AS CNT FROM A GROUP BY A.CODE; と、すれば、[DATE]の行数はとれます。 [CHK]が1の件数の取り方が解りません。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

case when then else と言う表記は、Accessでは使えないと思いますので、 Access用に書き直すとこうなると思います。 SELECT A.CODE, Count(A.DATE) AS CNT, Count(IIf(A.CHK=1,1,Null)) AS ChkSum FROM A GROUP BY A.CODE;

m-toshi
質問者

お礼

ありがとうございます。 思いとおりの結果が得られました。 今後とも、宜しくお願い致します。

その他の回答 (2)

noname#140971
noname#140971
回答No.3

A: CODE:______数値型 HIDUKE:___日付/時刻型 CHK:________Yes/No型 CODE__HIDUKE________CHK 1________2007/06/01___No 1________2007/06/10___Yes 1________2007/06/11___Yes 2________2007/05/01___No 2________2007/05/10___Yes Aクエリ: code____cnt_1____cnt_2 1_________3_________2 2_________2_________1 SELECT code, count([HIDUKE]) AS cnt_1, ABS(Sum([chk]=True)) AS cnt_2 FROM A GROUP BY CODE; [chk]=数値型 SELECT code, count([HIDUKE]) AS cnt_1, Sum([chk]) AS cnt_2 FROM A GROUP BY CODE; まあ、単純の[CHK]列を合計しても結果は同じです。

m-toshi
質問者

お礼

ご回答をありがとうございます。 思いとおりの結果を得られました。 今後とも、宜しくお願い致します。

回答No.1

AccessでのSQLのサポート状況が分かりませんが。。。 以下のSQLを試してみてください。 select code,count(date),count(case when chk=1 then 1 else null end) from A group by code

m-toshi
質問者

補足

ご回答をありがとうございます。 COUNT(CASE ・・・)の所でエラーになってしまいました。 今後とも、宜しくお願い致します。

関連するQ&A