Just try the following and you'll see more easily where is my problem !create table News( News_Id int, News_City int, News_Date DateTime primary key (News_Id, News_City))gocreate table City( City_Id int, City_Name varchar(20) primary key (City_Id))goinsert into News values (1, 1, '2002-01-02')insert into News values (2, 2, '2002-01-02')insert into News values (3, 1, '2001-31-12')insert into City values (1, 'Adelaide')insert into City values (2, 'Melbourne')insert into City values (3, 'Sydney')goCREATE VIEW dbo.vwNewsPerCityASSELECT COUNT(News_Id) AS EXPR1, News_City, YEAR(News_Date) AS iYear, MONTH(News_Date) AS iMonthFROM dbo.NewsGROUP BY News_City, YEAR(News_Date), MONTH(News_Date)goCREATE VIEW dbo.vwCity ASSELECT dbo.City.City_Id, dbo.City.City_Name, dbo.vwNewsPerCity.iYear, dbo.vwNewsPerCity.iMonthFROM dbo.City INNER JOIN dbo.vwNewsPerCity ON dbo.City.City_Id = dbo.vwNewsPerCity.News_CityWHERE (dbo.vwNewsPerCity.iYear = 2002) AND (dbo.vwNewsPerCity.iMonth = 2) OR (dbo.vwNewsPerCity.iYear IS NULL) AND (dbo.vwNewsPerCity.iMonth IS NULL)go-- In this query only 2 cities will show up (Adelaide and Melbourne) whereas I am expecting 3 (Sydney is missing)select * from vwCity