1 message in com.mysql.lists.mysqlCompare with 0 is not reliable
FromSent OnAttachments
zlab121 Apr 2002 10:05 
Subject:Compare with 0 is not reliable
From:zlab1 (zzz@hkbn.net)
Date:04/21/2002 10:05:09 AM
List:com.mysql.lists.mysql

-----Original Message----- From: zlab1 [mailto:zzz@hkbn.net] Sent: Sunday, April 21, 2002 13:50 To: MySQL Mailing List (mys@lists.mysql.com) Subject: Problem with HAVING

Hi,

I'm running Mysql 4.01 on mandrake 8.2 with all production data using InnoDB type.

I've a field named "dch_pri" contain some account transaction data in format of DECIMAL (14,2).

When running following query:

SELECT din_no, SUM(IF(tran_type = "D", dch_pri, -dch_pri)) AS dch_sum FROM pa_ch2 WHERE x_status IN ("", "C") AND dch_acc IN ('231000', '310000') GROUP BY din_no HAVING dch_sum # 0

It remove all record that contain absolute value between 0 and 0.99

Change query to:

SELECT din_no, SUM(IF(tran_type = "D", dch_pri, -dch_pri)) AS dch_sum FROM pa_ch2 WHERE x_status IN ("", "C") AND dch_acc IN ('231000', '310000') GROUP BY din_no HAVING dch_sum <> 0

It will retain all result record which dch_sum = 0

Change the HAVING dch_sum # 0 to HAVING dch_sum # 0.00 Or Change the HAVING dch_sum <> 0 to HAVING dch_sum <> 0.00 Doesn't improve. Any idea?