我的数据仅适用于11月和12月。在其他几个月里,我需要显示为“零”。我如何实现它?
示例数据:
月:12月
开放时间:2
关闭:2
NoStatus:5
月:11月
开放时间:5
已结束:7
NoStatus:15
预期产出:
月:1月(格式直到10月)
开放:0
关闭:0
NoStatus:0
月:12月
开放时间:2
关闭:2
NoStatus:5
月:11月
开放时间:5
已结束:7
NoStatus:15
答案 0 :(得分:1)
创建一个包含1列和12行的表,其中只包含从1月到12月的月份
CREATE TABLE months (name varhcar(15))
然后使用OUTER JOIN将此表与包含您的数据的其他表连接起来 假设您的表名为数据。
SELECT IFNULL(x.open) AS Open,
IFNULL(x.closed) AS Closed ,
IFNULL(x.noStatus) AS NoStatus ,
y.name AS Months
FROM months y
LEFT OUTER JOIN data x
ON x.month = y.name;
使用IFNULL函数显示 0 而不是 NULL 。将其应用于您想要的每一列零。
IFNULL (column_name,0)