[RESOLVIDO] Scriptcase não reconhece palavra 'and' dentro do Left Join

Olá Pessoal,
O Scriptcase está apresentando um erro num select que funciona no SQL. Segue o select:

Select CPI.CodProd as CodProdMP, CPI.Descricao as Desc_ProdutoMP,
(case when sum(BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoSolicitado) end) as PesoSolicitado,
(case when sum(BatRI.PesoDosado) is null then 0 else sum(BatRI.PesoDosado) end) as PesoDosado,
(case when sum(BatRI.PesoDosado-BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoDosado-BatRI.PesoSolicitado) end) as ErroKG,
(case when (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) is null then 0 else (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) end) as Percentual
From Opr_Producao_Reg OPR
Left Join Opr_Producao_Reg_Bat BatR on (OPR.NumeroProducao=BatR.NumeroProducao)
Left Join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroProducao=BatRI.NumeroProducao and BatR.NumeroBatelada=BatRI.NumeroBatelada)
Left Join Cad_Produto CPI on (BatRI.CodProd=CPI.CodProd)
Where OPR.CodFormula=[CodFormula] and CPI.CodProd <> 0
Group By CPI.CodProd, CPI.Descricao
Order By CPI.CodProd, CPI.Descricao

E o erro apresentado pelo Scriptcase:

Atenção
Erro ao acessar o banco de dados
Incorrect syntax near the keyword ‘and’.
select count(*) from Opr_Producao_Reg OPR Left Join Opr_Producao_Reg_Bat BatR on (OPR.NumeroProducao=BatR.NumeroProducao) Left Join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroProducao=BatRI.NumeroProducao and BatR.NumeroBatelada=BatRI.NumeroBatelada) Left Join Cad_Produto CPI on (BatRI.CodProd=CPI.CodProd) where OPR.CodFormula= and CPI.CodProd <> 0 group by CPI.CodProd, CPI.Descricao

Como posso resolver este problema? Preciso usar a palavra ‘and’ dento do Left Join…

Onde vc tá colocando esse select? Recomendo a criação de views para usar no scriptcase.
[]s

As vezes o sc confunde um pouco quando tem muitas funções no select. Quando isso ocorre, costumo criar uma view e chama-la na aplicação. Assim, terá menos problemas.

Criei uma view pro mesmo select, e voltou a apresentar outro erro:

Atenção
Erro ao acessar o banco de dados
The multi-part identifier “BatRI.PesoDosado” could not be bound.
SelectLimit(SELECT CPI.CodProd as codprodmp, CPI.Descricao as desc_produtomp, (case when sum(BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoSolicitado) end) as pesosolicitado, (case when sum(BatRI.PesoDosado) is null then 0 else sum(BatRI.PesoDosado) end) as pesodosado, (case when sum(BatRI.PesoDosado-BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoDosado-BatRI.PesoSolicitado) end) as errokg, (case when (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) is null then 0 else (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) end) as percentual from VW_OPR_Producao_Registrada_Formulas_Detalhadas_Item , 22, 0)

O que me sugerem?

Este erro deu no momento que você criou a view ou na aplicação?

Você cria a view com esse código:

Select CPI.CodProd as CodProdMP, CPI.Descricao as Desc_ProdutoMP, (case when sum(BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoSolicitado) end) as PesoSolicitado, (case when sum(BatRI.PesoDosado) is null then 0 else sum(BatRI.PesoDosado) end) as PesoDosado, (case when sum(BatRI.PesoDosado-BatRI.PesoSolicitado) is null then 0 else sum(BatRI.PesoDosado-BatRI.PesoSolicitado) end) as ErroKG, (case when (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) is null then 0 else (100-((sum(BatRI.PesoSolicitado)*100)/sum(BatRI.PesoDosado))) end) as Percentual From Opr_Producao_Reg OPR Left Join Opr_Producao_Reg_Bat BatR on (OPR.NumeroProducao=BatR.NumeroProducao) Left Join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroProducao=BatRI.NumeroProducao and BatR.NumeroBatelada=BatRI.NumeroBatelada) Left Join Cad_Produto CPI on (BatRI.CodProd=CPI.CodProd)

No SC você coloca só:

Select CodProdMP, Desc_ProdutoMP, ..... Where CodFormula=[CodFormula] and CodProd <> 0 Group By CodProd, Descricao Order By CodProd, Descricao

[]s

Este erro apareceu no momento em que executei a aplicação do scriptcase…
Mas consegui resolver, criei uma nova tabela e coloquei o viewer, funcionou :slight_smile:
Grato a todos pela ajuda!

Ok, coloque como resolvido o tópico!!

Só por curiosidade qual é o BANCO DE DADOS? MS-SQL?

Bom saber…

Isso acontece com todos os banco de dados ou só com algum em específico?

Com Mysql acontece. Já aconteceu comigo, e isso vem desde a vesão 7. Sempre crio Views pra contornar.

Isto, o banco é MS-SQL.