[英]Sum from Max Value in mysql
我嘗試從表中獲取最大值的總和:
select
a.sp_capex_01_master_key,
a.sp_capex_01_master_wbs_id,
format((
(
select
sum(maxVal)
from
(
select max(w.sp_capex_01_trans_realisasi) as maxVal
from sp_capex_01.sp_capex_01_trans w
where w.sp_capex_01_master_wbs_id='P2-14101-01'
group by w.sp_capex_01_master_key
) t
) / b.sp_capex_01_master_wbs_bud * 100
),2) as 'PerBudget'
from sp_capex_01_master a
join sp_capex_01.sp_capex_01_master_wbs b
on a.sp_capex_01_master_wbs_id=b.sp_capex_01_master_wbs_id;
如果我將值設置為w.sp_capex_01_master_wbs_id='P2-14101-01'
,則得到的結果值有誤。
但是當我將其更改為w.sp_capex_01_master_wbs_id=a.sp_capex_01_master_wbs_id
,我收到以下錯誤消息:
Error Code: 1054. Unknown column 'a.sp_capex_01_master_wbs_id' in 'where clause' 0.000 sec
如何獲得最大值的總和?
加入一個子查詢,該子查詢按您要匹配的列進行分組。
SELECT
a.sp_capex_01_master_key,
a.sp_capex_01_master_wbs_id,
FORMAT(sum_maxval / b.sp_capex_01_master_wbs_bud * 100, 2) AS PerBudget
FROM sp_capex_01_master a
JOIN sp_capex_01.sp_capex_01_master_wbs b ON a.sp_capex_01_master_wbs_id=b.sp_capex_01_master_wbs_id
LEFT JOIN (
SELECT sp_capex_01_master_wbs_id, SUM(maxVal) AS sum_maxval
FROM (
select w.sp_capex_01_master_wbs_id, max(w.sp_capex_01_trans_realisasi) as maxVal
from sp_capex_01.sp_capex_01_trans w
group by w.sp_capex_01_master_wbs_id, w.sp_capex_01_master_key
) AS w1
GROUP BY sp_capex_01_master_wbs_id
) AS w2 ON w2.sp_capex_01_master_wbs_id = a.sp_capex_01_master_wbs_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.