数据库记录了在事务上花费的行动和时间 . 这些操作记录在表格中,其中时间在“howlong”字段中以小数形式记录,并且每小时费用存储在字段“费用”中 . 它们通过matterid链接到事务表 . 当一组行动被收费时,“收费”字段显示为“Y”

我有一个页面,正在从包括上表的许多表格中生成报告 . 它工作正常,直到我尝试添加所有这些行动的费用总和*费用,当我得到'子查询返回超过1行'错误时,其中billed ='N' .

我添加的代码来获取总数(这是给出错误的代码)是:

(Select ROUND((SUM(howlong*matterjuncactions.fee)),2)
                   FROM matterjuncactions JOIN matters ON 
matters.matterid=matterjuncactions.matterid
                  WHERE matterjuncactions.billed='N' GROUP BY matters.matterid) AS nonbillsum

整个查询是:

SELECT `ref`, nickname, type, statusnsteps, finalemail, bible, (matterjuncoriginals.sent) AS origsent, GROUP_CONCAT(DISTINCT staff.initials SEPARATOR '; ') AS lds, CONCAT(DATE_FORMAT(matterjuncupdate.updatedate,'%D %M %Y'),' - ',matterjuncupdate.who) AS uptext, (Select GROUP_CONCAT(distinct initials SEPARATOR ', ')
                   from matterjuncstaff INNER join staff on staff.staffid = matterjuncstaff.staffid
                  where matterjuncstaff.lead = 'N' AND matterjuncstaff.matterid = matters.matterid) AS otstf, 
(Select ROUND((SUM(howlong*matterjuncactions.fee)),2)
                   FROM matterjuncactions JOIN matters ON matters.matterid=matterjuncactions.matterid
                  WHERE matterjuncactions.billed='N' GROUP BY matters.matterid) AS nonbillsum
FROM matters 
LEFT JOIN matterjuncstaff ON matterjuncstaff.matterid = matters.matterid AND lead = 'Y'
LEFT JOIN staff on matterjuncstaff.staffid=staff.staffid
LEFT JOIN matterjuncupdate ON matters.matterid=matterjuncupdate.matterid
LEFT JOIN matterjuncoriginals ON matters.mattercode=matterjuncoriginals.mattercode
LEFT JOIN matterjuncactions ON matters.mattercode=matterjuncactions.mattercode
WHERE `state` = 'Open' AND type='1'
GROUP BY matters.matterid
ORDER BY nickname ASC

我已经查看了“Subquery返回超过1行”错误的一些答案,但它们没有帮助我 . 我接受我的代码不是最好的,但是解决这个问题的任何帮助都将非常感激 .