- ベストアンサー
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の件数の取り方が解りません。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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;
その他の回答 (2)
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]列を合計しても結果は同じです。
お礼
ご回答をありがとうございます。 思いとおりの結果を得られました。 今後とも、宜しくお願い致します。
- chukenkenkou
- ベストアンサー率43% (833/1926)
AccessでのSQLのサポート状況が分かりませんが。。。 以下のSQLを試してみてください。 select code,count(date),count(case when chk=1 then 1 else null end) from A group by code
補足
ご回答をありがとうございます。 COUNT(CASE ・・・)の所でエラーになってしまいました。 今後とも、宜しくお願い致します。
お礼
ありがとうございます。 思いとおりの結果が得られました。 今後とも、宜しくお願い致します。