select data1.month,sum(data1.qty) as qty,sum(data1.weight) as weight, sum(data1.amount) as amount, round(sum(amount)/iif(sum(weight)=0, null, sum(weight)),2) as kgrt from (select month(date) as month,qty,qty * weight as weight,cr_amount as amount from cashsalp where type='P' union all select month(date) as month, qty,qty * weight as weight, cr_amount as amount from crsalp where type='P') as data1 group by data1.monthIt is always better to apply calculations at the very end to avoid problems with rounding and incorrect results.
>select data1.month,sum(data1.qty) as qty,sum(data1.weight) as weight,sum(data1.amount) as amount,max(data1.kgrt)as kgrt > from > (select month(date) as month,qty,qty * weight as weight,round(cr_amount/weight,2)as kgrt,cr_amount as amount from cashsalp > where type='P' > union all > select month(date) as month, qty,qty * weight as weight,round(cr_amount/weight,2)as kgrt,cr_amount as amount from crsalp > where type='P') > as data1 > group by data1.month >>