我正在创建一个存储桶,用于确定是否为每次预订的database.table报告了保险。
我想要做的是获得每个用户i的计数,其中保险报告为yes,当保险= no时,获得每个用户i的计数,然后按bmm、byyyy、dmm、dyyyy分组
这听起来很简单,但我觉得这个桶把我搞糊涂了。
SELECT CASE WHEN [insreported] IS NULL THEN 'NO' WHEN [insreported] = 'YES' THEN 'YES' END AS BUCKET, USERID, BMM, BYYYY, DMM, DYYYY
FROM (SELECT BOOKNO, USERID, INSREPORTED, BMM, BYYYY, DMM, DYYYY
FROM dbo.agent_insurance_incentive_data) AS derivedtbl_1发布于 2011-05-24 04:14:35
您可能正在寻找类似这样的东西。
SELECT sum(yes),sum(no),BMM, BYYYY, DMM, DYYYY FROM (
SELECT SUM( CASE WHEN [insreported] IS NULL THEN 0 WHEN [insreported] = 'YES' THEN 1 ELSE 0 END ) as yes, SUM( CASE WHEN [insreported] IS NULL THEN 1 WHEN [insreported] = 'YES' THEN 0 ELSE 1 END )as no, USERID, BMM, BYYYY, DMM, DYYYY
FROM dbo.agent_insurance_incentive_data
GROUP BY USERID, BMM, BYYYY, DMM, DYYYY
) derived
GROUP BY BMM, BYYYY, DMM, DYYYY内部查询统计每个用户报告/未报告的数量以及BMM、BYYYY、DMM、DYYYY。外部查询按用户对其求和。我不太确定您的目标是什么,但这里可以将其重写为外部查询,因为求和将是相同的。
https://stackoverflow.com/questions/6102406
复制相似问题