【问题标题】:Passing parameters in crystal reports sql command query水晶报表中传参sql命令查询
【发布时间】:2012-01-25 19:44:50
【问题描述】:

我正在尝试向 Crystal 报表中的 SQL 命令添加一个参数,但它出错了。以下是我的查询

select r.ID as ActivityRequestID, count(c.ID) as ChangeCount from Change c join ActivityRequest r on c.ObjID=r.ID 
where (c.Class='ActivityRequest' and c.ChangeType='Modified' and (c.PropertyName='Definition' or c.PropertyName='Registration') and ({c.Performed} >={?ChangesSince} ) ) group by r.ID

我去了数据库专家并创建了上述命令。现在,当我尝试保存命令时,它给了我错误。 '从数据库中检索数据失败。没有为一个或多个参数指定值'。现在用户在报告加载时选择参数并且没有我可以给出的硬编码值。请告诉我解决上述问题的方法。

【问题讨论】:

  • 倒数第二句不清楚...当您将 [?ChangesSince} 替换为常量日期时,该命令是否有效?

标签: crystal-reports


【解决方案1】:

我认为您在 {c.performed} 附近无意中包含了几个不需要它们的大括号 - 试试这个:

select r.ID as ActivityRequestID, 
       count(c.ID) as ChangeCount 
from Change c 
join ActivityRequest r on c.ObjID=r.ID 
where c.Class='ActivityRequest' and 
      c.ChangeType='Modified' and 
      (c.PropertyName='Definition' or 
       c.PropertyName='Registration') and 
      c.Performed >={?ChangesSince}  
group by r.ID

【讨论】:

  • 非常感谢您的回答。我能再问你一个问题吗?是否可以将参数设为可选。我试过这样做,但是 Edit 参数中可选的 True False 被禁用了。
  • 如果您已将其作为选择条件包含在 SQL 中,我看不出它怎么可能是可选的——所以在这些情况下,不,据我所知。 (你可以给它一个非常低的默认值。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多