2012-11-27 71 views
0
SELECT 
Counting = ISNULL(COUNT(A.Numbers), 0), 
B.Date AS DateX 
From Schema1.Table A INNER JOIN Schema2.Table B 
ON A.xyz=B.xyz 
Where B.Date = GetDate() 
Group by B.Date 

有時,B.Date將不會有今天的日期。我仍然希望結果輸出爲Counting = 0 and DateX = Todays dateT-SQL代碼將不會給出所需的輸出

我該怎麼做?

謝謝

編輯大衆的需求

A.Numbers = 123;456;789;012,...etc 
B.Date = 2012-11-24, 2012-11-24,-212-11-24,2012-11-26 

所以計數2012-11-24 = 32012-11-26 = 1但仍然會有當我設置B.Date2012-11-25 我想告訴Counting = 0B.Date = 2012-11-25

沒有輸出
+0

您的查詢當前查找的行數'B.Date' =當前毫秒數,這是不太可能發生的。你不應該搜索'WHERE CONVERT(DATE,B.Date)= CONVERT(DATE,GETDATE())'或'WHERE B.Date> = CONVERT(DATE,GETDATE())和B.Date

+0

我有轉換到位以獲取YYYY-MM-DD ...這只是一個更簡單的版本 – 007

+0

任何類型的字符串轉換爲strip time讓你的w​​here子句不可靠,你應該使用我在我的評論中列出的方法之一,請參閱http://www.sqlperformance.com/2012/09/t-sql-queries/what-is-the最有效的方法來修剪時間從日期時間和http://www.sqlperformance.com/2012/10/t-sql-queries/trim-time –

回答

3

擺脫你的where子句並改變你r選擇至

Counting = (Case when B.Date = GETDATE() then ISNULL(COUNT(A.Numbers),0) else 0 end) 
+0

當我使用有效的日期(日期有數據),我得到兩行,第一行是0,第二行有有效計數(#> 0)...當日期和計數是「有效」時,我該如何擺脫0? – 007

+0

@ user1569220請顯示示例數據和期望的結果。不可能確定喲如果我們無法看到它來自哪裏,我們正在尋找。 –

+0

更新了原始帖子 – 007