對於我的生活,我無法弄清楚如何在我的行中獲得0計數。分配計數爲0到沒有數據的行
我有2個非常簡單,設計很差的表,就像下面的表一樣。
不幸的是,我無法改變它們,只需要與它們合作。
IF OBJECT_ID('tempdb.dbo.#CityList') IS NOT NULL
DROP TABLE #CityList
CREATE TABLE #CityList (CityName varchar(255) PRIMARY KEY)
INSERT INTO #CityList VALUES ('New York City'), ('Cairo'), ('London'), ('Tokyo')
IF OBJECT_ID('tempdb.dbo.#A_LogFile') IS NOT NULL
DROP TABLE #A_LogFile
CREATE TABLE #A_LogFile(PersonName varchar(255), CityName varchar(255))
INSERT INTO #A_LogFile VALUES
('Joe', 'New York City'), ('Tim', 'Cairo'), ('Nancy','London'), ('Bilbo','Tokyo'),
('Joe', 'New York City'), ('Tim', 'Cairo'), ('Nancy','Tokyo'), ('Bilbo','New York City'),
('Joe', 'Cairo'), ('Tim', 'Cairo'), ('Nancy','Cairo'), ('Bilbo','Tokyo'),
('Joe', 'New York City'), ('Tim', 'Cairo'), ('Nancy','New York City'), ('Bilbo','Tokyo')
我用盡各種查詢像這樣的:
select l.PersonName, cl.CityName, COUNT(l.cityName) AS 'Total Visits'
from #CityList cl
left join #A_LogFile l on cl.CityName = l.CityName
group by l.PersonName, cl.CityName
order by PersonName, CityName
但我永遠無法得到的0
我需要每個人有每個城市的行數,計數即使該行不存在於#A_LogFile表中。
基本上,我需要的結果看起來像這樣(爲上述樣本數據):
Bilbo | Cairo | 0
Bilbo | London | 0
Bilbo | New York City | 1
Bilbo | Tokyo | 3
Joe | Cario | 1
Joe | London | 0
Joe | New York City | 3
Joe | Tokyo | 0
Nancy | Cairo | 1
Nancy | London | 1
Nancy | New York City | 1
Nancy | Tokyo | 1
Tim | Cairo | 4
Tim | London | 0
Tim | New York City | 0
Tim | Tokyo | 0
謝謝!
這個由l.PersonName – Paparazzi
打破左側組@Frisbee如果採取PERSONNAME本集團通過對,然後我得到一個錯誤。 – SkyeBoniwell