我无法使用错误说明的动态值bcoz “查找错误 - SQL Server数据库错误:无法对包含聚合或子查询的表达式执行聚合函数。”
以下是场景: 查询1
select pr.PRDCT,sum(CASE when pr.DEFINITIONCD='NOP' and pr.PERIOD='D' then pr.PRAMOUNT else 0 END)
as 'NOP D' from PRODUCTWISE_REPORT pr group by pr.PRDCT
查询2
select DEFINITIONTYPECD from REPORTKPIMAPTXN where DEFINITIONTYPECD='NOP' and REPORTSEQ = (select REPORTSEQ from report_m where REPORTCD='MIS_Product_Wise_Report')
查询2返回'NOP'
所以当我在查询1中为“NOP”放置查询2时,它会抛出错误
如何在用户动态查询2时解决此问题?
答案 0 :(得分:0)
您的第二个查询看起来可以使用连接而不是该子选择来重写。这样的事情。当然,您仍然会遇到一些问题,因为您的第一个查询有两列,而且只有一列。在UNION实际工作之前,您必须向此查询添加另一列(可以为NULL)。
select r.DEFINITIONTYPECD
from REPORTKPIMAPTXN r
INNER JOIN report_m m on m.REPORTSEQ = r.REPORTSEQ
where DEFINITIONTYPECD = 'NOP'
and r.REPORTCD = 'MIS_Product_Wise_Report'