2012-05-10 71 views
2

是否可以在Crystal Reports中的另一个命令上使用命令的结果?Crystal Reports中的嵌套SQL命令

举个例子,我有一个命令

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工作,但它仍然是很好能够ne st命令。

+0

只有关于SO的第二个问题从一开始就形成了。大! –

回答

1

简短回答是否,命令不能嵌套。

如果您可以获得在查询工具中使用的语法,它应该在Command中工作。

如果仍然出现语法错误,请考虑使用不同的数据库驱动程序。我注意到'本地'驱动程序比ODBC做得更好。