-3
別名とグループ化を使用して選択列に対して計算を実行しようとしています。クエリは、(前からライン上の問題)以下である:別名とグループを使用してSUMを選択した列
select r.res_id,
r.arrive_date,
r.depart_date,
r.res_type,
if(DATEDIFF(r.depart_date, r.arrive_date) >29, 'LT', 'ST') as 'StayType',
SUM(r.rent + r.fee_arr_early + r.fee_dep_late + r.fee_peace_waiver + r.fee_pool + r.city_tax + r.fee_cleaning + r.fee_pet + r.fee_tshirt + r.fee_misc + r.fee_non_tax + r.fee_processing + r.fee_travel_ins + r.fee_event + r.fee_cancel) as 'folioTotal',
coalesce((select SUM(g.amount) from guest_payments as g where g.resId = r.res_id and charge_type = 'charge' and approved = 'Y'),0) as 'payments',
coalesce((select SUM(g.amount) from guest_payments as g where g.resId = r.res_id and charge_type = 'credit' and approved = 'Y'),0) as 'credits',
(SUM('folioTotal') - SUM('payments') + SUM('credits')) as 'folioBalance'
from reservations as r
join guest_payments as g
on r.res_id = g.resId
group by r.res_id
私は同じ結果と別の合計の内側にこれを入れて試してみました。
folioTotalの合計フィールドのSUM()ではなくSUM()の合計を試しましたか? – Serge
問題は何ですか?テーブルを私たちに教えてください。 –
好きな場合は、この簡単な2ステップのアクション・コースを実行することを検討してください。1.問題をより簡単に複製できるように、適切なCREATEおよびINSERTステートメント(および/またはsqlfiddle)を指定します。 2.まだ実行していない場合は、手順1で提供された情報に対応する望ましい結果セットを指定します。 – Strawberry