MySQL GROUP BY状态,比如状态为 0,1,2,3,4分别代表5种状态,分别起的有中文名,如果状态为4的数据没有,此时需求是group by的时候状态为4的还在,但数据是0
SELECT
CASE
submit_status
WHEN 0 THEN
'已入库'
WHEN 1 THEN
'待出库'
WHEN 2 THEN
'出库中'
WHEN 3 THEN
'已出库'
WHEN 4 THEN
'已领取'
END AS cardType,
count(*) AS cardNum
FROM
card_ssc_entrylibrary
WHERE
1 = 1
AND submit_status IN ( 0, 1, 2, 3, 4 )
AND card_type = 1
GROUP BY
submit_status;
5个状态,最后那个用else就可以了,不需要再用when 4的
SELECT
CASE
WHEN submit_status=0 THEN
'已入库'
WHEN submit_status=1 THEN
'待出库'
WHEN submit_status=2 THEN
'出库中'
WHEN submit_status=3 THEN
'已出库'
else
'已领取'
END AS cardType,
count(*) AS cardNum
FROM
card_ssc_entrylibrary
WHERE
1 = 1
AND submit_status IN ( 0, 1, 2, 3, 4 )
AND card_type = 1
GROUP BY
submit_status;