Re: Query Assistance
От | Naz Gassiep |
---|---|
Тема | Re: Query Assistance |
Дата | |
Msg-id | 45FA3724.1090804@mira.net обсуждение исходный текст |
Ответ на | Re: Query Assistance (William Garrison <postgres@mobydisk.com>) |
Список | pgsql-general |
Indeed. Thanks for that! I keep getting bitten by that too hehe. - Naz. William Garrison wrote: > My guess is that integer division is to blame: 50 divided by 1500 = > 0.03 which rounds to zero. You probably have to cast them to real > before doing the division. > > Naz Gassiep wrote: >> Is anyone able to tell me why in the last column of the returned >> result set, the value calculated is always 0? >> >> >> QUERY: >> >> SELECT products.productid, >> products.cost, >> products.srp, >> CASE WHEN products.srp > 0 THEN (products.srp - >> products.cost) * 100 / products.srp ELSE 0 END AS margin, >> products.type, >> products.gstexempt, >> productpointvalues.earnvalue, >> productpointvalues.redeemvalue, >> productpointvalues.earnvalue / >> productpointvalues.redeemvalue AS redemptionmargin >> FROM categories, products >> LEFT OUTER JOIN productpointvalues USING (productid) >> WHERE products.active IS TRUE >> AND products.catid = categories.catid >> AND products.catid = 2 >> ORDER BY products.name; >> >> >> >> RESULT SET: >> >> productid | cost | srp | margin | type | gstexempt >> | earnvalue | redeemvalue | redemptionmargin >> -----------+-------+--------+----------------------+------+-----------+-----------+-------------+------------------ >> >> 716 | 8.60 | 10.00 | 14.0000000000000000 | N | f >> | 50 | 1500 | 0 >> 15 | 87.00 | 100.00 | 13.0000000000000000 | N | f >> | 500 | 10000 | 0 >> 13 | 26.10 | 30.00 | 13.0000000000000000 | N | f >> | 150 | 3000 | 0 >> 1189 | 0.00 | 40.00 | 100.0000000000000000 | N | f >> | 200 | 4000 | 0 >> 14 | 43.50 | 50.00 | 13.0000000000000000 | N | f >> | 250 | 5000 | 0 >> >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 9: In versions below 8.0, the planner will ignore your desire to >> choose an index scan if your joining column's datatypes do not >> match >> > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >
В списке pgsql-general по дате отправления: