2017-04-20 99 views
0

我有一个SQL查询,但我有这个问题,我想,SQL查询显示我在这两个表中的所有信息... 它的工作原理,但当我把一个条件的句子,我不能有充分的信息...如何显示所有信息从SQL查询

有了这个查询,我可以看到我的表的所有信息,即使我没有信息在一些列。 ..我需要,但我想添加一个条件,并且当我添加条件我看不到所有。

结果: Query without condition

SELECT dbo.tblHoras.IdHora, dbo.tblHoras.Hora, dbo.tblHoras.Meta, COUNT(dbo.tblProductos.Serial) as Cantidad 
FROM tblHoras full join 
    tblProductos 
    ON tblHoras.IdHora = tblProductos.IdHora 
GROUP By tblHoras.IdHora, tblHoras.Hora, tblHoras.Meta 
ORDER By tblHoras.IdHora; 

这是该情况的查询,这不会给我带来的所有信息。

SELECT dbo.tblHoras.IdHora, dbo.tblHoras.Hora, dbo.tblHoras.Meta, COUNT(dbo.tblProductos.Serial) as Cantidad 
FROM tblHoras full join 
    tblProductos 
    ON tblHoras.IdHora = tblProductos.IdHora 
WHERE tblProductos.ActualFecha = '2017-04-19' 
GROUP By tblHoras.IdHora, tblHoras.Hora, tblHoras.Meta 
ORDER By tblHoras.IdHora; 

结果: Query with condition

+0

请标记适当的数据库感谢 – maSTAShuFu

+0

您可以请将.ActualFecha数据和数据类型 – maSTAShuFu

+0

'FULL OUTER JOIN'与过滤真的混淆。您应该提供相同的数据和期望的结果。 –

回答

1

基于这样的事实,你只列在tblHoras聚集,我想你想LEFT JOIN

SELECT h.IdHora, h.Hora, h.Meta, COUNT(p.Serial) as Cantidad 
FROM tblHoras h LEFT JOIN 
    tblProductos p 
    ON p.IdHora = p.IdHora AND p.ActualFecha = '2017-04-19' 
GROUP By h.IdHora, h.Hora, h.Meta 
ORDER By h.IdHora; 

过滤条件应该再在ON条款。

请注意,我还引入了表别名,这些查询使查询更容易编写和读取。

+0

谢谢你的观察,它现在的作品,我真的很感激它。 – Machiaveli