2017-04-20 96 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