2013-11-27 31 views
0

我有以下模式和样本数据一个SQLite数据库表:SQLite的:如何编写一个查询这将填补空白单元格中的结果集

Fruit| LBS| Time 
----------------------- 
    Apple|  1| 00001 
    Apple|  2| 00002 
Orange|  1| 00001 
Banana|  3| 00004 

而且我希望能够运行一个查询

Fruit|  LBS| Time 
----------------------- 
    Apple|  1| 00001 
    Apple|  2| 00002 
    Apple|  0| 00004 
Orange|  1| 00001 
Orange|  0| 00002 
Orange|  0| 00004 
Banana|  0| 00001 
Banana|  0| 00002 
Banana|  3| 00004 

正如可以看到所有现有的:与充气/填充(默认)值这样的分配/过载的一列,即“果”对另一列中,“时间”和推导出一个结果对于每个具有默认(空)值的独特水果类型,重复时间值。

我很抱歉不知道这叫做什么;但我希望这个例子能让我明白。

+0

LBS和时间总是一样吗?如果LBS = 1,苹果公司的TIME = 00001,LBS = 1,Orange的TIME = 123456,那么你错过了Banana,1你需要为香蕉,00001还是123456显示哪个值? – fthiella

回答

2
SELECT 
    f.Fruit, 
    COALESCE(x.LBS, 0), 
    t.Time 
FROM ( 
       (SELECT DISTINCT Fruit FROM your_table) f 
    CROSS JOIN (SELECT DISTINCT Time FROM your_table) t 
) 
LEFT JOIN your_table x 
    ON f.Fruit = x.Fruit 
    AND t.Time = x.Time; 
相关问题