Erro select no sqlserver o que será?

2 respostas
P
Caused by: java.sql.SQLException: Incorrect syntax near the keyword 'order'.
Erro ao preencher impressão ... Error executing SQL statement for : ImsCertificate004
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : ImsCertificate004      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:141)      at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:656)      at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:588)      at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1196)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:782)      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)      at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:947)      at java.lang.Thread.run(Unknown Source)  Caused by: java.sql.SQLException: Incorrect syntax near the keyword 'order'.      at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)      at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)      at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)      at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)      at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)      at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)      at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:135)      ... 10 more  
Impressão não foi preenchida. Tente utilizar uma Fonte de Dados Vazia ...
SELECT ic.certificate_id,
       icd.cn titular,
       ica.name ac,
       ic.notafter ate,
       ic.notbefore de,
       ic.certificate_state situacao,
       ict.certificate_family  icp,
       ict.name tipo,
       idm.name modelo,
       ic.serialnumber serie,
       iu.name usuario
FROM certificate ic
left join certificate_type ict on ic.certificate_type_id  = ict.certificate_type_id
left join certificate_dn icd on ic.dn_id  = icd.dn_id
left join ca ica on ict.ca_id  = ica.ca_id
left join publickey ipk on ic.publickey_id  = ipk.publickey_id
left join key_container ikc on ipk.publickey_id  = ikc.publickey_id
left join device id on ikc.device_id  = id.device_id
left join device_model idm on id.device_model_id  = idm.device_model_id
left join user iu on id.user_id  = iu.user_id
where $P{titulari} = "0" or upper(icd.cn) like $P{titulari}%
order by icd.cn

2 Respostas

rodrigo.ferreira

Boa tarde!

# left join device id on ikc.device_id  = id.device_id  
# left join device_model idm on id.device_model_id  = idm.device_model_id  
# left join user iu on id.user_id  = iu.user_id  
# where $P{titulari} = "0" or upper(icd.cn) like $P{titulari}%
# order by icd.cn

Tente assim:

# left join device id on ikc.device_id  = id.device_id  
# left join device_model idm on id.device_model_id  = idm.device_model_id  
# left join user iu on id.user_id  = iu.user_id  
# where ($P{titulari} = "0") or (upper(icd.cn) like ($P{titulari}+"%"))
# order by icd.cn

Abraço,

Visite o Blog do Perereca: http://www.blogdoperereca.blogspot.com

A

Você criou um sinônimo para o atributo icd.cn, então no order by tem que ter o sinônimo titular

troque o seu order by

order by icd.cn

por

order by icd.titular

ou

order by titular

Abraços

Criado 22 de maio de 2009
Ultima resposta 22 de mai. de 2009
Respostas 2
Participantes 3