Hello,

I had a customer contact me that a report was randomly "missing data" and have tracked down the problem to a single SQL query. the problem is that some items, that logically match the WHERE clause don't get selected.

I have put together a reverse logic of that statement below by changing the = to != . I have attached a very small subset of this client's data that demonstrates the problem. Using the attached file which contains 4 orders none of which should get selected using the statement below;

SELECT * FROM orders_tbl WHERE (ord_total+discount-tax1-tax2-tax3-tax4-delivery_tax-delivery_fee)!=subtotal;

However, record #1 gets selected. If you change the != back to an =, then you get the remaining 3.

If you manually look through the relevant column data all 4 orders are logically correct, and should be treated in the same manner by the select statements.

I have tested this on Windows machines and posted it to a forum where another user was able to demonstrate the same issue. I have tried the windows command shell version (sqlite3.exe / sqlite-shell-win32-x86-3080200.zip) as well as the sqlite3.dll / sqlite-dll-win32-x86-3080100.zip and an earlier (not sure which) version of the dll. I have not tested on any other operating systems.


Regards,

Scott Slater
Summit Computer Networks, Inc.
(866) 922-9690  Ext. 7701
(724) 779-6390  Ext. 7701
sslat...@summitcn.com
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to