[RESOLVIDO]Consulta + SQL Errado

Boa tarde, comecei recentemente no scriptcase…

bem estava eu criando uma consulta quando resolvi alterar o sql da mesma que era:

select nr_rq, desc_departamento, desc_rq_status, desc_rq_tipo, id_rq, id_almox, id_departamento, id_servidor, id_rq_tipo, id_rq_status, id_perfil, motivo, data, data_fechamento, num_controle, ano FROM vw_almox_rq_cons WHERE id_rq_status >= 2 AND id_rq_status < 4

então eu resolvi fazer um case no campo id_rq_status da seguinte maneira

CASE when (CURRENT_DATE - data) >= 2 and id_rq_status = 3 then 'Aguardando Retirada Atrasado' end as id_rq_status

então percebi que era melhor fazer essa verificação no evento onRecord e voltei para a consulta inicial… só que agora a consulta sempre roda com a alteração do CASE que eu coloquei, rodando a aplicação em Modo Debug ele me mostra a consulta executando com o CASE mesmo eu já tendo removido…

como sou novo no scriptcase já rodei todos os atributos do grid e não achei onde posso arrumar isso…
só solucionei criando uma nova consulta mas eu gostaria de saber o que pode estar acontecendo se possível…

obrigado pela ajuda desde já…

Amigo,
Faça sua consulta através de uma view do banco de dados.
[]s

Allan… a consulta está sendo feito na view… mesmo assim está com esse problema

Mas o case está na view ou na aplicação?

na view… mas o caso não é nem onde o CASE está… e sim porque está executando a consulta com essa cláusula quando eu já removi ela…

Se eu entendi, você alterou a view e na aplicação o SQL está executando a view antiga?
Vc pode mandar o SQL que está na consulta?

não…

na verdade o que eu fiz foi o seguinte la na opção SQL da consulta tinha esse código

Consulta inicial

select nr_rq, desc_departamento, desc_rq_status, desc_rq_tipo, id_rq, id_almox, id_departamento, id_servidor, id_rq_tipo, id_rq_status, id_perfil, motivo, data, data_fechamento, num_controle, ano FROM vw_almox_rq_cons WHERE id_rq_status >= 2 AND id_rq_status < 4

então eu alterei essa consulta para

select nr_rq, desc_departamento, desc_rq_status, desc_rq_tipo, id_rq, id_almox, id_departamento, id_servidor, id_rq_tipo, CASE when (CURRENT_DATE - data) >= 2 and id_rq_status = 3 then 'Aguardando Retirada Atrasado' end as id_rq_status, id_perfil, motivo, data, data_fechamento, num_controle, ano FROM vw_almox_rq_cons WHERE id_rq_status >= 2 AND id_rq_status < 4

repare que alterei a consulta no parametro id_rq_status para o CASE

então eu vi que a melhor alternativa para fazer isso era com código no onRecord

e voltei a consulta novamente para a consulta inicial

Consulta inicial

select nr_rq, desc_departamento, desc_rq_status, desc_rq_tipo, id_rq, id_almox, id_departamento, id_servidor, id_rq_tipo, id_rq_status, id_perfil, motivo, data, data_fechamento, num_controle, ano FROM vw_almox_rq_cons WHERE id_rq_status >= 2 AND id_rq_status < 4

depois da ultima alteração o sql continua executando com o case…

Ok, aconteceu isso comigo uma vez e resolvi assim:
Então faça o seguinte, exclua um campo do SQL e salve.
Depois coloque o campo o campo de volta e salve novamente.
PS: Parece estranho mas funcionou. Acho que é bug do SC.

Quando precisar usar SQL avançado, nunca faça no SC. Use case, if etc sempre nas views
[]s

opa funcionou…

Obrigado pela ajuda e pelo conselho!

Nada,
boa sorte.