Re: Query Assistance

From: Naz Gassiep <naz(at)mira(dot)net>
To: William Garrison <postgres(at)mobydisk(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Query Assistance
Date: 2007-03-16 06:20:20
Message-ID: 45FA3724.1090804@mira.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message William Garrison 2007-03-16 06:37:09 Re: Query Assistance
Previous Message Brandon Aiken 2007-03-16 05:53:51 Re: PgSql on Vista?