select mzgh.s_dj,all_cnt,all_cnt_jz,zyqd.s_dj,n_ddd from
(SELECT 'dj' AS s_dj, SUM(CASE WHEN s_cure_name LIKE '%挂号费%' THEN n_cure_number ELSE 0 END) AS all_cnt,
SUM(CASE WHEN s_cure_name LIKE '%急诊诊查费%' THEN n_cure_number ELSE 0 END) AS all_cnt_jz
FROM HIS_patient_out_cure
WHERE (s_cure_name LIKE '%挂号费%' OR
s_cure_name LIKE '%急诊诊查费%') AND (s_charge_mark = 1) AND (d_charge_time BETWEEN
'2017-07-15' AND '2017-07-29')) AS mzgh
--住院患者用药强度
CROSS Join (SELECT 'dj' AS s_dj, CONVERT(decimal(18, 2), SUM(a.ddd / b.asszrs * 100) ) AS n_ddd
FROM (SELECT k.n_stand_ddd, 'dj' as s_office, SUM(med.n_day) AS n_day, CONVERT(decimal(18, 2),
SUM(CAST(times.n_number AS decimal(18, 4)) * CAST(med.s_dose_number AS decimal(18, 4))
* CAST(med.n_day AS decimal(18, 4)) / k.n_stand_ddd)) AS ddd
FROM (SELECT LEFT(s_medicine_no, 15) AS s_no, 'dj' as s_office_doctor, n_medicine_number, n_medicine_price,
n_money, n_day, s_dose_time, s_dose_number
FROM HIS_patient_in_medicine
WHERE (d_out_time BETWEEN '2017-07-01' AND '2017-07-29') AND (LEFT(s_medicine_no, 15) IN
(SELECT LEFT(s_serial, 15) AS Expr1
FROM Weipeiwang.KIS_ypcrk_glossary
WHERE (n_stand_ddd > 0)))) AS med INNER JOIN
Weipeiwang.KIS_ypcrk_glossary AS k ON med.s_no = LEFT(k.s_serial, 15) INNER JOIN
HIS_ypk_times AS times ON times.s_code = med.s_dose_time
WHERE (k.n_stand_ddd > 0)
GROUP BY k.n_stand_ddd, med.s_dose_time) AS a CROSS JOIN
(SELECT COUNT(HIS_patient_man.s_hospital_no) * (SUM(HIS_patient_man.n_inhospital_day)
/ COUNT(HIS_patient_man.s_hospital_no)) AS asszrs, 'dj' as s_office
FROM HIS_patient_man
WHERE (HIS_patient_man.d_time_out BETWEEN '2017-07-01' AND '2017-07-29') AND
(HIS_patient_man.s_hospital_no NOT LIKE '%-%')) AS b) as zyqd
为什么在最外层的select中增加n_ddd字段的显示就会报这个错误呢?如果不增加这个字段的显示就正常
求大神指点,坐等信息
SUM(a.ddd / b.asszrs * 100),当中字段是全数字吗