Re: Query Assistance - Mailing list pgsql-general

From Naz Gassiep
Subject Re: Query Assistance
Date
Msg-id 45FA3724.1090804@mira.net
Whole thread Raw
In response to Re: Query Assistance  (William Garrison <postgres@mobydisk.com>)
List 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 by date:

Previous
From: "Brandon Aiken"
Date:
Subject: Re: PgSql on Vista?
Next
From: "Dave Page"
Date:
Subject: Re: pg_dumpall and version confusion