【发布时间】:2011-06-09 11:56:09
【问题描述】:
我使用 SUM ( CASE WHEN ) 来计算是和否的数量,它工作正常。
我在计算两张表中匹配的手机号码时遇到问题。它似乎没有正确计数。
奶制品表中有MobileNO字段,销售表中有mobile字段
SELECT
D.Username,
SUM(CASE WHEN D.type = 'Yes' THEN 1 ELSE 0 END) as Yes,
SUM(CASE WHEN D.type = 'No' THEN 1 ELSE 0 END) as No,
SUM(CASE WHEN D.type = '' THEN 1 ELSE 0 END) as Other,
(SELECT SUM(CASE WHEN D.MobileNo = S.mobile THEN 1 ELSE 0 END) from sales as S) as Sales,
COUNT(*) as TOTAL FROM dairy as D
WHERE source = 'Company' AND UNIX_TIMESTAMP(CheckDate) >= 1293840000 AND UNIX_TIMESTAMP(CheckDate) <= 1322697600
group by D.Username order by TOTAL DESC
【问题讨论】:
-
怎么算不正确?
-
@Mr E,请参阅 Parkyprg 答案。现在可以正常使用了。