我需要通过他们的雇主(几个不同的雇主,而不仅仅是1个)注册的健康俱乐部会员数量,每月会员资格以及他们的会员资格加上他们的家庭成员。我遇到的问题是,目前我们没有任何LEVEL D会员资格,但可能在将来。如果没有会员资格,我需要报告显示“0”。我试过了
COUNT(DISTINCT CUSTOMER_ID) +
COUNT(CASE WHEN CUSTOMER_ID IS NULL THEN 1 END) AS NUMBER_OF_CUSTOMERS
它没有用,任何帮助都表示赞赏。
SELECT
MEMBERSHIP_TYPE,
COUNT(DISTINCT CUSTOMER_ID) AS NUMBER_OF_CUSTOMERS,
COUNT(CASE WHEN CUSTOMER_RELATION = ‘FAMILYMEMBER’ THEN 1 END) AS FAMILY_MEMBERS,
COUNT(DISTINCT CUSTOMER_ID) + COUNT(CASE WHEN CUSTOMER_RELATION ‘FAMILY_MEMBERS’ THEN 1 END) AS TOTAL
这是我目前得到的
MEMBERSHIP_TYPE NUMBER_OF_CUSTOMERS FAMILY_MEMBERS TOTAL
-------------------------------------------------------------
LEVEL A 100 25 125
LEVEL B 630 340 970
LEVEL C 1201 630 1831
我需要这个
MEMBERSHIP_TYPE NUMBER_OF_CUSTOMERS FAMILY_MEMBERS TOTAL
-------------------------------------------------------------
LEVEL A 100 25 125
LEVEL B 630 340 970
LEVEL C 1201 630 1831
LEVEL D 0 0 0
答案 0 :(得分:0)
您将把值硬编码到select语句中。将UNION ALL添加到SQL语句
..your current select statement
UNION
SELECT LEVEL D, 0,0,0;
当在表格中输入D级时,更新的值将正确显示。