[pgsql-jp: 28435] 四則演算の結果
Norio Kikuta
kikuta.norio @ nifty.ne.jp
2002年 12月 24日 (火) 11:03:10 JST
PostgreSQL初心者です。
PostgreSQLのバージョンは7.2.3です。
下記のような計算を行ったとき、例1と例2で値が違ってくるのはなぜでしょうか。
商品別総数量、卸単価は整数で定義しています。
このとき、例1では計算結果が実数で表示されますが、例2では全てゼロと表示されてしまいます。
s.商品別総数量 * s.卸単価 * 100.0 / kei.総計・・・正しい値が返される
s.商品別総数量 * s.卸単価 / kei.総計 * 100.0・・・ゼロの結果が返される
例1
select s.商品名,
s.商品別総数量 * s.卸単価 as "卸単価",
s.商品別総数量 * s.卸単価 * 100.0 / kei.総計 as "%"
from (
select sum(a.数量 * b.卸単価) as "総計"
from 売上データ a, 商品マスタ b
where a.商品id = b.商品id
) kei,
(
select b.商品id, b.商品名, b.卸単価, sum(a.数量) as "商品別総数量"
from 売上データ a, 商品マスタ b
where a.商品id = b.商品id
group by b.商品id, b.商品名, b.卸単価
) s;
例2
select s.商品名,
s.商品別総数量 * s.卸単価 as "卸単価",
s.商品別総数量 * s.卸単価 / kei.総計 * 100.0 as "%"
from (
select sum(a.数量 * b.卸単価) as "総計"
from 売上データ a, 商品マスタ b
where a.商品id = b.商品id
) kei,
(
select b.商品id, b.商品名, b.卸単価, sum(a.数量) as "商品別総数量"
from 売上データ a, 商品マスタ b
where a.商品id = b.商品id
group by b.商品id, b.商品名, b.卸単価
) s;
********************************
Norio Kikuta
E-Mail ; kikuta.norio @ nifty.ne.jp
********************************
pgsql-jp メーリングリストの案内