繁体   English   中英

为什么此存储过程可以在Server Explorer中工作,而在被SSRS报告或我的应用程序调用时却不能工作?

[英]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;

消除我得到的一些重复记录( PlatypusDESCRIPTIONMemberName组合应始终显示在一行上)。

它可以在Server Explorer中正常运行。 我可以执行存储过程,提供参数,然后返回我期望的数据。

但是,使用此存储过程的SSRS报告不再起作用-它将TC.WEEK1USAGE所有列的值保留为空白(仅显示PlatypusDESCRIPTIONMemberName的值); 当我从调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM