如何在水晶报告中使用多个存储过程?

时间:2009-05-19 16:13:11

标签: sql stored-procedures crystal-reports

我希望在我的存储过程中使用两个存储过程,但是一旦我这样做,就无法加载错误:“提供的参数无效,没有检索到行集”。如果我删除其中任何一个,它就会重新开始工作。

我的水晶报告设置如下:

Report:
  Group By Tenant.ReferedBy
    stored proc here that calculates the tenant's balance

并且第二个存储过程在Select for the report中。我只想通过状态标志选择租户,并且我从存储过程中获取状态标志。

无论如何,这两个程序都没有联系在一起。一个返回一个值(select中的一个),另一个返回多个(group by中的一个)。既不采用任何参数,也只是存储在数据库中的简单SQL语句。

First Proc:GetAllTenantBalances

SELECT (SUM(tblTransaction.AmountPaid) - SUM(tblTransaction.AmountCharged)) AS TenantBalance, tblTransaction.TenantID
    FROM tblTransaction
    GROUP BY tblTransaction.TenantID

Second Proc:[GetTenantStatusID_Current]

SELECT ID FROM tblTenantStatus WHERE Description = 'Current'

任何人都可以告诉我为什么我不能这样做,以及如何绕过它?

3 个答案:

答案 0 :(得分:1)

您可以将第一个sp更改为仅“当前”租户。或者,如果您必须保留两个sp,则必须转到数据库专家并通过tenant_id加入它们。

答案 1 :(得分:0)

您还可以使用子报告为您提供所需的数据。在主要上使用SP,然后在子报告上使用另一个SP。

-JFV

答案 2 :(得分:-1)

除非发生某些变化,否则您无法从报告中调用多个过程。我怀疑你可以调用多个select语句。您将需要创建一个返回两个数据的proc或为第二个proc创建一个子报告。