sqlite> CREATE TABLE test_base(id INTEGER NOT NULL PRIMARY KEY); sqlite> CREATE TABLE test_join(id INTEGER NOT NULL PRIMARY KEY, base_id INTEGER NOT NULL REFERENCES test_base(id), value NUMERIC NOT NULL); sqlite> INSERT INTO test_base VALUES(1); sqlite> INSERT INTO test_join VALUES(1, 1, 0);
sqlite> SELECT test_base.id, test_join.value FROM test_base LEFT JOIN test_join ON test_join.base_id = test_base.id WHERE test_join.value=0; 1|0 sqlite> SELECT test_base.id, test_join.value FROM test_base LEFT JOIN test_join ON test_join.base_id = test_base.id WHERE test_join.value='0'; 1|0 sqlite> SELECT test_base.id, SUM(test_join.value) FROM test_base LEFT JOIN test_join ON test_join.base_id = test_base.id GROUP BY test_base.id HAVING SUM(test_join.value)=0; 1|0 sqlite> SELECT test_base.id, SUM(test_join.value) FROM test_base LEFT JOIN test_join ON test_join.base_id = test_base.id GROUP BY test_base.id HAVING SUM(test_join.value)='0'; sqlite> The last statement generates no results. There is no mention of a special case for HAVING so I would assume that the engine should also typecast the string into a corresponding numerical value. This is failing on all numerical types of `value` (including INTEGER). _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users