作为套餐的一部分,我正在尝试执行以下操作:
我对表AAA运行查询以获取值X
(即int)。我想查询表BBB以列出顶部X
(表AAA中的结果值)记录百分比,然后根据查询结果创建表CCC的新记录。
因此,我创建了一个SQL编辑器,并在SQLStatement下插入表AAA中的查询。我创建了一个结果集,其中结果名称作为包含X
值的列名。我创建了2个变量...一个用于存储X
值,另一个用于将SQl语句存储为字符串,并在Value下插入表BBB中的查询。然后我用变量""" SQL命令创建了一个OLE DB源代码。并使用存储SQL语句的变量。
select top (@Variable) percent * from BBB WHERE isdisabled <> 1 ORDER BY newid()
这总是让我错误地说TOP clause contains an invalid value
。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
Matt评论使用此解决方案可能会更好:
您可以跳过创建SQL变量。在此TOP查询的数据源中,您可以选择SQL Command而不是table。然后输入Select TOP ? * From BBB WHERE isdisabled <> 1 ORDER BY newid()
并将变量用作参数。
如果您需要使用原始方法 - 您需要在Sql变量上添加表达式,以便解析第一个变量。你不能将@Variable硬编码到Sql变量的值中。
类似于:"Select Top " + @[User::TopVariable] + " * From ..."