所以我有一个查询,如果表中没有匹配的连接,它显示零,这就是我想要的。但是,如果有匹配的行,但它们与where子句中的行不匹配,我不会得到零,我什么也得不到。
SELECT *
FROM PUEvents PUE1
OUTER APPLY (
SELECT day
FROM Day_Map
WHERE Date = '2014-04-12'
) D1
OUTER APPLY (
SELECT date
FROM Day_Map
WHERE Day = D1.Day AND
Year = '2013' AND
MapID > 976
) D2
LEFT JOIN PUConsumerData PUC ON PUC.EventID = PUE1.EventID
WHERE PUE1.EventID > 4958 AND
PUE1.EventId < 5023 AND
PUE1.TourID = 353 AND
(
CONVERT(DATE, PUC.PictureTakenDate) = '2014-04-12' OR
PUC.PictureTakenDate IS NULL
) AND
(
PUC.FirstName <> 'ZOOM' OR
FirstName IS NULL
)
ORDER BY PUE1.Name
因此对于第51行,数据库中有行甚至是偶数但不是日期范围,所以我没有得到事件数据。我需要事件数据,因为没有匹配的消费者数据。