有一個siteOrder
表我在這裏查看本週在網站下的訂單,有兩列問題是siteName
和OrderDate
,我只考慮四個站點而忽略其他站點。sql服務器插入缺失記錄
但是,如果沒有訂單放置任何這四個站點的話,我想0
對抗,而不是沒有行顯示的網站上顯示,這裏是我的解決方案
SELECT SiteName,COUNT(SiteName) AS Completed FROM SiteOrder WHERE SiteName IN ('Site1','Site2','Site3','Site4')
and DATEPART(mm,OrderDate) = DATEPART(mm,getdate())
and DATEPART(yyyy,OrderDate) = DATEPART(yyyy,getdate())
and DATEPART(dd,OrderDate) > DATEPART(dd,DATEADD(DAY, 1-DATEPART(WEEKDAY, getdate()), getdate()))
GROUP BY SiteName
order by SiteName
,讓我
SiteName Completed
-----------------------
Site1 1
Site2 1
Site3 1
通知該網站4缺少我想,以展示反對0 4站點而不是在所有
問題是你Where子句。您已保留OrderDate列的條件。如果Site4沒有記錄,它將被排除。下面給出瞭解決方案。 – AK47
@ AK47 - 如果其中一個網站的'SiteOrders'中沒有任何訂單*,該怎麼辦? –
@ AK47 - 恩,不。如果根本沒有行(不只是給定日期標準),那麼對於該網站,該網站不可能存在於您的結果集中。 –