[英]Why does this Stored Procedure work from Server Explorer, but not when called by an SSRS Report or my app?
我最近更新了存储过程; 我从中更改了它的最后一部分:
SELECT
TC.PlatypusDESCRIPTION, TC.MemberName,
TC.WEEK1USAGE, TC.WEEK2USAGE, TC.USAGEVARIANCE,
TC.WEEK1PRICE, TC.WEEK2PRICE, TC.PRICEVARIANCE,
TC.PRICEVARIANCEPERCENTAGE
FROM
#TEMPCOMBINED TC
ORDER BY
TC.PlatypusDESCRIPTION, TC.MemberName;
...对此:
SELECT
TC.PlatypusDESCRIPTION, TC.MemberName, SUM(TC.WEEK1USAGE),
SUM(TC.WEEK2USAGE), SUM(TC.USAGEVARIANCE),
AVG(TC.WEEK1PRICE), AVG(TC.WEEK2PRICE), AVG(TC.PRICEVARIANCE),
SUM(TC.PRICEVARIANCEPERCENTAGE)
FROM
#TEMPCOMBINED TC
GROUP BY
TC.PlatypusDESCRIPTION, TC.MemberName
ORDER BY
TC.PlatypusDESCRIPTION;
消除我得到的一些重复记录( PlatypusDESCRIPTION
和MemberName
组合应始终显示在一行上)。
它可以在Server Explorer中正常运行。 我可以执行存储过程,提供参数,然后返回我期望的数据。
但是,使用此存储过程的SSRS报告不再起作用-它将TC.WEEK1USAGE
所有列的值保留为空白(仅显示PlatypusDESCRIPTION
和MemberName
的值); 当我从调用SP的自定义Winforms应用程序运行它时,它给我一个错误消息,关于该表没有名为“”什么?!”的字段。 如您所见,该字段在那里。
为什么存储过程将在Server Explorer中运行,但是在从SSRS和其他地方调用时却不满意?
您需要显式指定聚合字段名称,如下所示:
SELECT TC.PLATYPUSDESCRIPTION, TC.MemberName, SUM(TC.WEEK1USAGE) AS WEEK1USAGE, SUM(TC.WEEK2USAGE) AS WEEK2USAGE,
SUM(TC.USAGEVARIANCE) AS USAGEVARIANCE, AVG(TC.WEEK1PRICE) AS WEEK1PRICE, AVG(TC.WEEK2PRICE) AS WEEK2PRICE,
AVG(TC.PRICEVARIANCE) AS PRICEVARIANCE, SUM(TC.PRICEVARIANCEPERCENTAGE) AS PRICEVARIANCEPERCENTAGE
FROM #TEMPCOMBINED TC
GROUP BY TC.PLATYPUSDESCRIPTION, TC.MemberName
ORDER BY TC.PLATYPUSESCRIPTION, TC.MemberName;
IOW,“ SUM(TC.WEEK1USAGE) ”不删减; 它的格式必须为“ SUM(TC.WEEK1USAGE)AS WEEK1USAGE ”(等)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.