Попытка подсчитать общее количество активных, неактивных и специализированных членов - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь получить количество активных и неактивных членств для классического и базового типов членства. Из классических членств есть подмножество участников, которые зарегистрировались через другую компанию, но эти членства также будут считаться классическими.,

До сих пор я смог выбрать все классические или базовые членства и показать, активны они или нет.Тем не менее, я не добился успеха в СЧЕТЕ, сколько активных и неактивных членств существует для каждого и для классического членства, которое было сделано через другую компанию.

Пока у меня есть это:

SELECT 
    m.membershipID as MembershipID,
    m.Level,
    s.subInactive,
    CASE 
        WHEN s.subInactive = 0 THEN s.subInactive + 1
        WHEN s.subInactive = 1 THEN s.subInactive - 1
    END AS oneMeansActive
FROM dbo.membershipsStartsAndDrops m
INNER JOIN dbo.Subscriptions s on m.membershipID = s.subSubscription_ID

Я знаю, что, возможно, я на неправильном пути, но был бы признателен, если бы кто-то мог указать мне правильное направление.Спасибо!

Пример данных:

membershipID | Level | subInactive | OneMeansActive
1             Classic      0              1
2             Basic        0              1
3             Classic      0              0

Желаемый результат:

ActClassic | ActBasic | InaClassic | InaBasic | ActSpecial
  83079        5607       12658        3403        1270

Столбцы = активные классические членства, активные базовые членства, неактивные классические членства, неактивные базовые членства,активные классические членства, которые подписаны через стороннюю компанию.

Я не могу понять, как подсчитать все эти значения, а также сгруппировать их следующим образом.Я также извлекаю данные из 2 разных баз данных.Классическое членство, подписанное через стороннюю компанию, происходит из той же базы данных, что и tbl_subscription.Таблица, из которой она взята, - company_members

1 Ответ

0 голосов
/ 18 января 2019

Кажется, вы хотите условную агрегацию. Примерно так:

select sum(case when level = 'Classic' then OneMeansActive else 0 end) as numClassicActives,
       sum(case when level = 'Basic' then OneMeansActive else 0 end) as numBasicActives,
       sum(case when level = 'Classic' then subInactive else 0 end) as numClassicSubinactives,
       sum(case when level = 'Classic' then subInactive else 0 end) as numBasicSubinactives  
from company_members m
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...