[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 メーリングリストの案内