2017-06-06 130 views
0

我有一个数据集,其中我需要每个问题都有3行。 1为每个可能的状态。以下是我目前拥有的一个例子。向SQL查询添加缺失的行

Issue Status Time 
------------------- 
1  SLM  30 
1  SNB  43 
1  EOB  22 
2  SLM  12 
2  EOB  87 

我需要类似这样的问题,其中问题没有状态,那么添加一行并为该时间设置0。

Issue Status Time 
---------------------- 
    1  SLM  30 
    1  SNB  43 
    1  EOB  22 
    2  SLM  12 
    2  EOB  87 
    2  SNB  0 

我该怎么做?

+0

您是否有包含三种类型状态值的表? –

回答

5

将ID与状态交叉连接并将表加入到该表中。

select i.issue,s.status,coalesce(t.time,0) as time 
from (select distinct status from tbl) s --replace this with status table if you have one 
cross join (select distinct issue from tbl) i 
left join tbl t on t.issue=i.issue and t.status=s.status 
-1

您可以使用此sql命令轻松添加另一行。 INSERT INTO table_name(column1,column2,column3 ...) VALUES(value1,value2,value3,...);

例如,如果您的表名称是