是否可以在Crystal Reports中的另一个命令上使用命令的结果?
举个例子,我有一个命令
SELECT foo FROM bar WHERE foo2 IN (list)
保存为command_1
现在我想要
SELECT xfoo FROM xbar WHERE xfoo2 IN (command_1.foo)
在一个简单的例子中,我意识到我可以将它们组合到
SELECT xfoo FROM xbar WHERE xfoo2 IN (SELECT foo FROM bar WHERE foo2 IN (list))
但在我的真实案例中,由于嵌套的SELECT太多而导致错误。
我的真实世界的例子,如果有人想要提供具体而不仅仅是一般答案:
现有命令保存为pnr
:
SELECT DISTINCT rem.pop_pid
FROM a_remiss rem
INNER JOIN a_bestall best ON rem.arem_id = best.arem_id
JOIN a_prov prov ON best.apro_id = prov.apro_id
WHERE prov.pro_provdat >= {ts '2006-01-01 00:00:00'}
AND prov.pro_provdat <= {ts '2011-12-31 23:59:59'}
AND best.ana_analyskod IN ('PKREAT', 'PKREA', 'PKREAN')
AND (
rem.pop_pid LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 1[89]'
OR rem.pop_pid LIKE '[01][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 20'
)
想要额外的新命令:
SELECT arem_id, apro_id, ana_analyskod
FROM a_bestall
WHERE ana_analyskod IN('ABSBIK', 'BCRPS')
AND arem_id IN (
SELECT arem_id
FROM a_remiss
WHERE rem_ank_dttm >= {ts '2006-01-01 00:00:00'}
AND rem_ank_dttm <= {ts '2012-01-31 23:59:59'}
AND pop_pid IN pnr.pop_pid
)
编辑:修复了现在使嵌套的SELECT工作的代码错误,但是能够嵌套命令仍然很好。
答案 0 :(得分:1)
简短的回答是否定的,命令不能嵌套。
如果您可以在查询工具中使用语法,则它应该在Command中工作。
如果仍然出现语法错误,请考虑使用其他数据库驱动程序。我注意到了“本地人”。驱动程序比ODBC做得更好。