我有一個表叫xDays
設置如下圖所示:選擇列,其中另一列相關的總數爲0
╔══════════════╦═════════════════════════╦═══════╗
║ Project_Name ║ Date ║ Hours ║
╠══════════════╬═════════════════════════╬═══════╣
║ proj1 ║ 2010-03-03 00:00:00.000 ║ 0 ║
║ proj1 ║ 2010-03-04 00:00:00.000 ║ 0 ║
║ proj1 ║ 2010-03-05 00:00:00.000 ║ 0 ║
║ proj2 ║ 2010-03-03 00:00:00.000 ║ 1 ║
║ proj2 ║ 2010-03-04 00:00:00.000 ║ 0 ║
║ proj2 ║ 2010-03-05 00:00:00.000 ║ 0 ║
╚══════════════╩═════════════════════════╩═══════╝
我試圖做的是選擇每個Project_Name
誰是總在Hours
列0
。在上面的例子中,SELECT語句應該返回proj1
,因爲它總hours
爲0,而對於proj2
總課時爲1
我得到的最接近是:
select sum(hours) as 'total', project_name
From xDays
group by project_name
order by project_name
這給了我一個表格顯示每個project_name的總小時數,它顯示0
某些project_names的總小時數。從這裏,我已經嘗試了一些不同的東西,要麼得到一個
轉換轉換爲varchar值定義了int類型
錯誤或空結果時失敗。我試過的一些例子:
select sum(hours) as 'total', project_name
From xDays
where 'total' = convert(varchar(10), 0)
group by project_name
order by project_name`
這會返回空結果。
select sum(hours) as 'total', project_name
From xDays
where 'total' = 0
group by project_name
order by project_name
這會返回轉換錯誤(無法將varchar轉換爲int)。
我如何才能正常工作?
如果所有項目都不應該出現在提取中,那麼所有項目在'xDays'表中是否都有條目?是否有可能將負小時分配給項目? – JohnLBevan
無負面小時。 – pfinferno
注意:'where'total'= 0'這裏你將字符串值'total'(不是列/結果)與0進行比較。 – JohnLBevan