2012-01-25 67 views
0

我想向Crystal报表中的SQL命令添加一个参数,并且出错。下面是我的查询在水晶报告中传递参数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 

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

+0

第二到最后一句不清楚...是否该命令的工作,当你用不变的日期替换[?ChangesSince}? – Ryan

回答

4

我想你已经在不经意间包括一对夫妇在不需要他们牙套,围绕{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 
+0

非常感谢您的回答。我可以再问你一个问题吗?可以将参数设置为可选。我试过这样做,但Edit参数中可选的True False被禁用。 – developer

+0

如果你已经将它作为一个选择条件包含在你的SQL中,我不会看到它是如何选择的 - 在我的情况下,没有,据我所知。 (你可以给它一个非常低的默认值)。 –