我的表返回結果如下(跳過行如果HOUROFDAY不具有特定ID數據)SQL如何在沒有可用數據的情況下強制顯示0行?
ID HourOfDay Counts
--------------------------
1 5 5
1 13 10
1 23 3
..........................HourOfDay up till 23
2 9 1
等。
我想實現是強制顯示行的HoursOfDay顯示0,沒有數據,如下列:
ID HourOfDay Counts
--------------------------
1 0 0
1 1 0
1 2 0
1......................
1 5 5
1 6 0
1......................
1 23 3
2 0 0
2 1 0
etc.
我身邊有研究一下吧。它看起來像我可以實現這個結果,如果我創建一個額外的表和外部連接它。在SP所以我創建表變量(如一個臨時的解決方法)
DECLARE @Hours TABLE
(
[Hour] INT NULL
);
INSERT INTO @Hours VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)
,(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23);
但是,無論我怎麼加入它,它並沒有達到預期的效果。
我該如何繼續?我是否添加額外的列以加入?完全不同的方法?任何暗示正確的方向表示讚賞!
我確定左加入可以在這裏有所幫助。 select * from hours a left join yourtable b where a.hour = b.hour; 這樣的事情應該工作。 –
@ user1412869這是我嘗試的第一件事 –