At 12:13 PM 7/6/07, stephen wrote:
SELECT distinct cc.trader_id, t.credit_card_number, t.expiry_date, t.name_on_card, sum(to_number(cc.debit_credit,'999999.99')),cc.approval_number, t.business_name  FROM credit_card_history AS cc INNER JOIN traders AS t USING (trader_id) GROUP by cc.trader_id, t.credit_card_number, t.expiry_date, t.name_on_card, cc.approval_number, t.business_name having sum(to_number(cc.debit_credit,'999999.99')) != 0

And I expect to get one line as I only have I trader-id in my table(s) but I get this:

1493 4321442143314432 09/09 two duck -200  2 Duck Trading Company

1493 4321442143314432 09/09 two duck 200 5678 2 Duck Trading Company

In fact I dont actually expect to get any response as the sum should have summed to zero.

Does anyone know what I am doing wrong?


It's hard to say for sure because to don't have column delimiters in output; but it kinda looks like the first result is sum of all rows without an approval_number and the second ro has approval_number 5678