2017-03-02 4 views
0

回答は、特定の小数点以下の桁数を持つ浮動小数点数ではなく、科学的表記法で与えられたすべての支払いの総額を合計しようとしています。私が関心を持っている列はtotal_amountです。これを行う適切な方法と、大したケース関数についての少しの背景を教えてください。ケースを使用してデータ型を変換する場合のケース

Select customer.customer_id, customer.email, count(payment.payment_date) as payments_count, 
round(sum(Cast(payment.amount as numeric(4,2))), 2) as total_amount 
From customer join payment 
on customer.customer_id = payment.customer_id 
group by customer.customer_id 
+0

使用しているデータベースであなたの質問にタグを付けてください。 –

+0

@GordonLinoff MySQLのように見える –

+0

あなたのラウンドとキャストは、すでに小数点以下2桁を与えているはずです。実際にどのような出力が必要ですか。ちなみに、GROUP BYで非集計カラムを選択しています。 –

答えて

0

round()データタイプは値に変更されません。代わりに、sum()をやっ後をキャスト:

Select c.customer_id, c.email, count(p.payment_date) as payments_count, 
     Cast(sum(p.amount) as numeric(4, 2)) as total_amount 
From customer c join 
    payment p 
    on c.customer_id = p.customer_id 
group by c.customer_id; 
関連する問題