「二重」のネストされた SELECT ステートメントがあります。より深いステートメントは、既存の行に挿入しようとしている月ごとの合計に必要な値を引き出します。ただし、各「セグメント」のパーセンテージは異なるため、複数の行になります。これを回避するために、結果を合計する外部選択があります。
さらに問題は、列名「Enrol_month_short」にリンクしようとすると、次のメッセージが表示されるため、結果を月に一致させることができないことです。
「'where 句' の不明な列 'Enrol_month_short'」
SELECT Date_format(tbl_client_details.cd_enrol_date, '%b %y')AS
Enrol_month_short, Sum(tbl_revenue.rev_value) AS
Enrol_Cum_Rev, (SELECT Sum(tbl_revenue.rev_value)
FROM tbl_client_details
LEFT OUTER JOIN gridlock.tbl_revenue
ON tbl_client_details.cd_zbi_no = tbl_revenue.rev_zbi_no
AND tbl_client_details.cd_ucn = tbl_revenue.rev_ucn
WHERE ( Date_format(tbl_client_details.cd_enrol_date, '%b %y') =
enrol_month_short )
AND ( Date_format(rev_month, '%b %y') = enrol_month_short )
GROUP BY Date_format(tbl_client_details.cd_enrol_date, '%b %y')) AS
New_client_rev,
(SELECT Count(tbl_client_details.cd_id)
FROM tbl_client_details
WHERE ( tbl_client_details.cd_enrol_date >= '2012-04-01'
AND tbl_client_details.cd_enrol_date <= '2012-07-31' )
AND Date_format(tbl_client_details.cd_enrol_date, '%b %y') =
enrol_month_short
GROUP BY Date_format(tbl_client_details.cd_enrol_date, '%b %y')) AS
Actual_Enrols,
(SELECT ( ( Sum(tbl_revenue.rev_value) *
( tbl_segment.seg_growth_2012 / 100 ) ) / 12 ) AS YEAR_NEW_BUS_BUDGET
FROM tbl_client_details
LEFT OUTER JOIN tbl_revenue
ON tbl_client_details.cd_zbi_no = tbl_revenue.rev_zbi_no
AND tbl_client_details.cd_ucn = tbl_revenue.rev_ucn
LEFT OUTER JOIN tbl_segment
ON tbl_client_details.cd_segment = tbl_segment.seg_name
WHERE ( rev_month >= '2012-04-01' AND rev_month <= '2012-07-31' )
GROUP BY enrol_month_short) AS
YEAR_NEW_BUS_BUDGET
FROM tbl_client_details
LEFT OUTER JOIN gridlock.tbl_revenue
ON tbl_client_details.cd_zbi_no = tbl_revenue.rev_zbi_no
AND tbl_client_details.cd_ucn = tbl_revenue.rev_ucn
WHERE ( tbl_client_details.cd_enrol_date >= '2012-04-01'
AND tbl_client_details.cd_enrol_date <= '2012-07-31' )
AND ( rev_month >= '2012-04-01'
AND rev_month <= '2012-07-31'
OR rev_month = NULL )
GROUP BY enrol_month_short
ORDER BY tbl_client_details.cd_enrol_date;