Boa Tarde Srs.
Tenho uma tabela de consulta na qual fiz um filtro por eventos para o campo data, já utilizei o mesmo método aplicado nesta tabela para fazer o filtro em outras tabelas e funcionou, porém, nesta tabela ocorreu o seguinte erro:
Erro ao acessar o banco de dados Incorrect syntax near the keyword 'and'. select count(*) from (Select BatR.DataInicioBatelada, BatR.NumeroBatelada, (convert(varchar(5), BatR.NumeroBatelada)+ '/'+ convert(varchar(5), OPR.QuantBatPV)) as Batelada, CF.Descricao as Desc_Formula, CP.Descricao as Desc_ProdutoFormula, OPR.NumeroLotePA, (convert(varchar(5), BatR.TempoMistSeco)+' s') as TempoMistSeco, (convert(varchar(5), BatR.TempoMistUmido)+' s') as TempoMistUmido, (convert(varchar(5), BatR.TempoMistTotal)+' s') as TempoMistTotal, (Select sum(PesoDosado) from OPR_Producao_Reg_Bat_Item BatRI2 where BatRI2.NumeroProducao = OPR.NumeroProducao and BatRI2.NumeroBatelada = BatR.NumeroBatelada) as PesoDosado, OPR.Comentario, OPR.NumeroProducao, CL.Descricao as Desc_Linha, CPG.Descricao as Desc_ProdutoGrupo, OPR.Controle, CSE.Abreviatura as Desc_SiloExp, BatR.NumeroProducao as BatR_NumeroProducao From Opr_Producao_Reg OPR Inner Join Opr_Producao_Reg_Bat BatR on (OPR.NumeroProducao=BatR.NumeroProducao) Inner Join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroProducao=BatRI.NumeroProducao and BatR.NumeroBatelada=BatRI.NumeroBatelada) Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula) Left Join Cad_Linha CL on (OPR.CodLinha=CL.CodLinha) Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd) Left Join Cad_Produto CPI on (BatRI.CodProd=CPI.CodProd) Left Join Cad_Produto_Grupo CPG on (CP.CodGrupoProd=CPG.CodGrupoProd) Left Join Cad_Balanca CB on (BatRI.CodBalanca=CB.CodBalanca) Left Join Cad_Silo CSE on (BatR.CodSiloDestino=CSE.CodSilo) Left Join Cad_Silo CS on (BatRI.CodSilo=CS.CodSilo) Left Join Sys_UCTabUsers on (Sys_UCTabUsers.UCIdUser=BatR.Usuario) Where 1=1 and BatRI.PesoSolicitado>0 Group By BatR.DataInicioBatelada, BatR.NumeroBatelada, (convert(varchar(5), BatR.NumeroBatelada)+ '/'+ convert(varchar(5), OPR.QuantBatPV)), CF.Descricao, CP.Descricao, OPR.NumeroLotePA, (convert(varchar(5), BatR.TempoMistSeco)+' s'), (convert(varchar(5), BatR.TempoMistUmido)+' s'), (convert(varchar(5), BatR.TempoMistTotal)+' s'), OPR.Comentario, OPR.NumeroProducao, CL.Descricao, CPG.Descricao, OPR.Controle, CSE.Abreviatura, BatR.NumeroProducao ) nm_sel_esp and convert(varchar(19), BatRI.DataInicioDosagem, 121) between convert(varchar(19), '2015-06-12 00:00:00', 121) and convert(varchar(19), '2015-06-12 23:59:59', 121)
Select da consulta:
Select BatR.DataInicioBatelada, BatR.NumeroBatelada, (convert(varchar(5), BatR.NumeroBatelada)+ '/'+ convert(varchar(5), OPR.QuantBatPV)) as Batelada,
CF.Descricao as Desc_Formula, CP.Descricao as Desc_ProdutoFormula, OPR.NumeroLotePA, (convert(varchar(5), BatR.TempoMistSeco)+' s') as TempoMistSeco,
(convert(varchar(5), BatR.TempoMistUmido)+' s') as TempoMistUmido, (convert(varchar(5), BatR.TempoMistTotal)+' s') as TempoMistTotal,
(Select sum(PesoDosado) from OPR_Producao_Reg_Bat_Item BatRI2 where BatRI2.NumeroProducao = OPR.NumeroProducao and BatRI2.NumeroBatelada = BatR.NumeroBatelada) as PesoDosado,
OPR.Comentario, OPR.NumeroProducao, CL.Descricao as Desc_Linha, CPG.Descricao as Desc_ProdutoGrupo, OPR.Controle, CSE.Abreviatura as Desc_SiloExp,
BatR.NumeroProducao as BatR_NumeroProducao
From Opr_Producao_Reg OPR
Inner Join Opr_Producao_Reg_Bat BatR on (OPR.NumeroProducao=BatR.NumeroProducao)
Inner Join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroProducao=BatRI.NumeroProducao and BatR.NumeroBatelada=BatRI.NumeroBatelada)
Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula)
Left Join Cad_Linha CL on (OPR.CodLinha=CL.CodLinha)
Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd)
Left Join Cad_Produto CPI on (BatRI.CodProd=CPI.CodProd)
Left Join Cad_Produto_Grupo CPG on (CP.CodGrupoProd=CPG.CodGrupoProd)
Left Join Cad_Balanca CB on (BatRI.CodBalanca=CB.CodBalanca)
Left Join Cad_Silo CSE on (BatR.CodSiloDestino=CSE.CodSilo)
Left Join Cad_Silo CS on (BatRI.CodSilo=CS.CodSilo)
Left Join Sys_UCTabUsers on (Sys_UCTabUsers.UCIdUser=BatR.Usuario)
Where 1=1 and BatRI.PesoSolicitado>0
Group By BatR.DataInicioBatelada, BatR.NumeroBatelada, (convert(varchar(5), BatR.NumeroBatelada)+ '/'+ convert(varchar(5), OPR.QuantBatPV)),
CF.Descricao, CP.Descricao, OPR.NumeroLotePA, (convert(varchar(5), BatR.TempoMistSeco)+' s'),
(convert(varchar(5), BatR.TempoMistUmido)+' s'), (convert(varchar(5), BatR.TempoMistTotal)+' s'),
OPR.Comentario, OPR.NumeroProducao, CL.Descricao, CPG.Descricao, OPR.Controle, CSE.Abreviatura, BatR.NumeroProducao
Order By BatR.DataInicioBatelada
Código utilizado no evento onScriptIni do menu da consulta:
if (!empty([cond_datainicial])){
sc_select_where(add) = " and [cond_datainicial]";
}
Código utilizado no evento onValidate do filtro avançado:
sc_reset_global ([cond_datainicial]);
if (!empty({datainicial}) and ({datainicial} != "0000-00-00 00:00:00")){
if (empty({datainicial_hor}) and empty({datainicial_min}) and empty({datainicial_seg})){
switch ({datainicial_cond}){
case "bw":{
if (empty({datainicial_input_2_hor}) and empty({datainicial_input_2_min}) and empty({datainicial_input_2_seg})){
[cond_datainicial] = " convert(varchar(10), BatRI.DataInicioDosagem, 121) between convert(varchar(10), '{datainicial}', 121) and convert(varchar(10), '{datainicial_2}', 121)";
} else{
[cond_datainicial] = " convert(varchar(10), BatRI.DataInicioDosagem, 121) between convert(varchar(10), '{datainicial}', 121) and convert(varchar(19), '{datainicial_2}', 121)";
}
break;
}
}
}
else {
switch ({datainicial_cond}){
case "bw":{
if (empty({datainicial_input_2_hor}) and empty({datainicial_input_2_min}) and empty({datainicial_input_2_seg})){
[cond_datainicial] = " convert(varchar(19), BatRI.DataInicioDosagem, 121) between convert(varchar(19), '{datainicial}', 121) and convert(varchar(10), '{datainicial_2}', 121)";
} else {
[cond_datainicial] = " convert(varchar(19), BatRI.DataInicioDosagem, 121) between convert(varchar(19), '{datainicial}', 121) and convert(varchar(19), '{datainicial_2}', 121)";
}
break;
}
}
}
}
Acredito que os códigos estão corretos, em tópicos mais antigos aqui do fórum vi que pode se tratar de um bug. Porém, não vi tópicos sobre este erro na versão 8 do scriptcase.
Como posso contornar esta situação?
Agradeço desde já,
Davi