2012-09-17 35 views
4

我有一個非常簡單的查詢:加入其中year符計算

SELECT a, b, a+b as c FROM records 

其中一期工程好了。他是從結果的例子:

Array ([a] => 100.92 [b] => 21.00 [c] => 121.92) 

但我嘗試通過一年來篩選記錄分鐘:

SELECT a, b, a+b as c FROM records 
WHERE YEAR(`mydate`) = '2011' 

的A + B計算消失:

Array ([a] => 100.92 [b] => 21.00 [c] =>) 

上午我錯過明顯的東西?

更新:

  1. 我一直在問的實際的SQL,那就是:

    SELECT信用卡,借記卡,信用卡+付款作爲共有來自交易 WHERE YEAR(transaction_date)= '2011'

  2. transaction_date是日期字段類型。

  3. 此外,信貸或借記字段始終爲零。

  4. PHP代碼:

代碼

include($_SERVER["DOCUMENT_ROOT"] . "/pool/_/db.php"); 

$sql = "SELECT credit, debit, credit+debit as total FROM transactions 
      WHERE YEAR(`transaction_date`) = 2011"; 

$result = mysql_query($sql) or die(mysql_error()); 

while($row = mysql_fetch_assoc($result)) { 
     print_r($row); 
} 
+2

愚蠢的問題,但'mydate'的數據類型是什麼?你應該避免在'WHERE'子句的列中使用函數。 'WHY mydate LIKE'2011 - %''好多了。 – Kermit

+0

向我們展示真實代碼 –

+2

我不確定它是否重要,但Year函數將返回一個整數值。 – Tom

回答

3

我能想到的唯一的事情是,要麼creditdebitNULL(不0),這反過來,將使總價值也爲NULL。試試看看它是否會改變任何東西:

... COALESCE(credit, 0) + COALESCE(debit, 0) as total ...