[英]select columns base on different conditions in mysql php
我需要此代碼的幫助。 我做錯了什么。 我想要一個結果,可以給我按當前和以前的收益列中的商業,住宅和農業基本列數量分組。 如何完成此代碼或提供更好的建議。 先感謝您。
SELECT (CASE (c.classcode)
WHEN 'C' THEN 'COMMERCIAL'
WHEN 'R' THEN 'RESIDENTIAL'
WHEN 'A' THEN 'AGRICULTURE' END) AS CLASSIFICATION,
( SELECT SUM(a.basic)
FROM cashreceiptitem_rpt_online a
JOIN cashreceipt_rpt b ON a.rptreceiptid=b.objid
JOIN rptledger c ON a.rptledgerid=c.objid
WHERE b.month='11'
AND a.revperiod='current'
) AS BC,
( SELECT SUM(a.basic)
FROM cashreceiptitem_rpt_online a
JOIN cashreceipt_rpt b ON a.rptreceiptid=b.objid
JOIN rptledger c ON a.rptledgerid=c.objid
WHERE b.month='11'
AND a.revperiod='previous'
) AS BPC
FROM cashreceiptitem_rpt_online a
JOIN cashreceipt_rpt b ON a.rptreceiptid=b.objid
JOIN rptledger c ON a.rptledgerid=c.objid
WHERE b.month='11'
我有此錯誤Error Code: 1242; Subquery returns more than 1 row.
Error Code: 1242; Subquery returns more than 1 row.
不確定您的表結構,但您應該可以執行以下操作:
SELECT c.classcode, SUM(a.basic), SUM(aprev.basic)
FROM cashreceiptitem_rpt_online a
JOIN cashreceiptitem_rpt_online aprev
ON a.rptreceiptid = aprev.rptreceiptid
JOIN cashreceipt_rpt b ON a.rptreceiptid=b.objid
JOIN cashreceipt_rpt bprev ON a.rptreceiptid=bprev.objid
JOIN rptledger c ON a.rptledgerid=c.objid
WHERE b.month='11' AND bprev.month='11'
AND a.revperiod='current' AND aprev.revperiod = 'previous'
GROUP BY c.classcode;
您需要為表的主鍵找出合適的聯接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.