请帮帮我。 我正在创建一个查询,以柱状方式列出客户贷款(REF_NO 字段)支付的所有本金 (SLE_CODE = 11) 和利息 (SLE_CODE = 23)。
我试过这段代码,但它返回“子查询返回多于 1 行”的错误。
SELECT DATE_FORMAT(TR_DATE, '%M %d, %Y'), SL_CLIENTID, REF_NO, SLE_CODE, (select amt from sldtl where REF_NO = 1958
AND SL_CLIENTID = 1782 AND SLC_CODE = 12 AND SLE_CODE = 23) as interest,
(select amt from sldtl sd where REF_NO = 1958
AND SL_CLIENTID = 1782 AND SLC_CODE = 12 AND SLE_CODE = 11) as principal
FROM sldtl
WHERE REF_NO = 1958
AND SL_CLIENTID = 1782 AND SLC_CODE = 12
请引用这个sqlfiddle:
http://sqlfiddle.com/#!9/3ac32/2
提前谢谢你。
最佳答案
样本数据和期望的结果会很有帮助。我很确定你想要条件聚合。也许是这样的:
SELECT DATE_FORMAT(TR_DATE, '%M %d, %Y'),
SL_CLIENTID, REF_NO,
SUM(CASE WHEN SLE_CODE = 23 THEN amt END) as interest,
SUM(CASE WHEN SLE_CODE = 11 THEN amt END) as principal
FROM sldtl
WHERE REF_NO = 1958 AND SL_CLIENTID = 1782 AND SLC_CODE = 12
GROUP BY DATE_FORMAT(TR_DATE, '%M %d, %Y'),
SL_CLIENTID, REF_NO;
关于mysql - 子查询的解决方法返回超过 1 个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58587748/