помогите с подсчетом ведра данных sql - PullRequest
0 голосов
/ 24 мая 2011

Я создаю список того, была ли заявлена ​​страховка или нет для моей базы данных. Таблица за бронирование.

Что я хочу сделать, так это получить фунт за идентификатор пользователя, где указана страховка, и количество за идентификатор пользователякогда страховка = нет, а затем сгруппировать по 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

1 Ответ

1 голос
/ 24 мая 2011

Вероятно, вы ищете что-то вроде этого.

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.Внешний запрос суммирует это по пользователю.Я не совсем уверен, какова ваша цель, но здесь это может быть переписано как просто внешний запрос, так как суммирование будет таким же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...