【问题标题】:How can I use more than one Stored Procedure in a crystal report?如何在水晶报表中使用多个存储过程?
【发布时间】:2009-05-19 16:13:10
【问题描述】:

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

我的水晶报表是这样设置的:

报告:
  按租户分组。ReferedBy
    计算租户余额的存储过程

第二个存储过程位于报告的选择中。我只想通过状态标志选择租户,并且我从存储过程中获取状态标志。

无论如何,这两个过程都没有链接在一起。一个返回一个值(select 中的那个),另一个返回多个(group by 中的那个)。都不带任何参数,都只是存储在数据库中的简单 SQL 语句。

第一个过程:GetAllTenantBalances

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

第二个过程:[GetTenantStatusID_Current]

SELECT ID FROM tblTenantStatus WHERE Description = 'Current'

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

【问题讨论】:

    标签: sql stored-procedures crystal-reports


    【解决方案1】:

    您可以将第一个 sp 更改为仅汇总“当前”租户。或者,如果你必须保留两个 sp,你将不得不去找数据库专家并通过 tenant_id 加入他们。

    【讨论】:

    • 我已将第二个 sp 链接到 Tenant.TenantStatus 字段,当我取消链接时,它开始工作。
    【解决方案2】:

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

    -JFV

    【讨论】:

      【解决方案3】:

      除非发生了变化,否则您不能从报告中调用多个 proc。我怀疑你可以调用多个选择语句。您要么需要创建一个返回两个数据的过程,要么为第二个过程创建一个子报表。

      【讨论】:

      • “多个”选择语句只是一个“与”
      • 您的意思是加入吗? “AND”通常是“On”子句或过时的“Where”子句的一部分。
      猜你喜欢
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2011-10-12
      • 1970-01-01
      • 2014-06-22
      相关资源
      最近更新 更多