[pgsql-jp: 28437] Re: 四則演算の結果
Keiji Mitsubuchi
keiji @ nwco.com
2002年 12月 24日 (火) 11:31:36 JST
三淵です。
見当違いかもしれませんが
s.商品別総数量、s.卸単価、kei.総計
が、整数値だと
s.商品別総数量 * s.卸単価 / kei.総計 は
ゼロになってしまうのでは?
s.商品別総数量 * s.卸単価 * 100.0 では
キャスティングされて
実数値になるとか?
試していないので、推測ですが
Cだと確かそうだったような
間違ってたら、申し訳ありません。
----- Original Message -----
From: "Norio Kikuta" <kikuta.norio @ nifty.ne.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, December 24, 2002 11:03 AM
Subject: [pgsql-jp: 28435] 四則演算の結果
> 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 メーリングリストの案内