Search Postgresql Archives

Re: Query Assistance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux