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

[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の件数の取り方が解りません。
宜しくお願い致します。

A 回答 (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;
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/01 14:26

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]列を合計しても結果は同じです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/01 14:27

AccessでのSQLのサポート状況が分かりませんが。

。。

以下のSQLを試してみてください。

select code,count(date),count(case when chk=1 then 1 else null end)
from A
group by code

この回答への補足

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

補足日時:2007/06/01 14:24
    • good
    • 0

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