Autor Tópico: [RESOLVIDO] Filtro para select com operador 'union' (duas cláusulas where)  (Lida 607 vezes)

soeletricavergani

  • Novato
  • *
  • Mensagens: 19
  • "[...] O serviço é alegria." Tagore
Boa Tarde,
Tenho o seguinte select numa consulta:

Código: [Selecionar]
Select CS.DtModificacao, Cad_Silo.Abreviatura, Cad_Silo.CodSilo, Cad_Silo.CodProd, Cad_Silo.Descricao as Desc_Silo, CP.Descricao as Desc_Produto, CP2.Descricao as Desc_UltProduto,
Sys_UCTabUsers.UCLogin as UsuarioCorrecao, CS.EstoqueAnterior, CS.EstoqueNovo, 'CORREÇÃO' as Tipo
From Cad_Silo_Correcao_Reg CS
Left Join Cad_Silo on (CS.CodSilo=Cad_Silo.CodSilo)
Left Join Cad_Produto CP on (CP.CodProd=Cad_Silo.CodProd)
Left Join Cad_Produto CP2 on (CP2.CodProd=Cad_Silo.CodUltProd)
Left Join Sys_UCTabUsers on (Sys_UCTabUsers.UCIdUser=CS.Usuario)
Where 1=1 and CS.CodProd is not null and CS.CodProd>0

Union

Select ES.DtModificacao, Cad_Silo.Abreviatura, Cad_Silo.CodSilo, Cad_Silo.CodProd, Cad_Silo.Descricao as Desc_Silo, CP.Descricao as Desc_Produto, CP2.Descricao as Desc_UltProduto,
Sys_UCTabUsers.UCLogin as UsuarioEsvazia, ES.Estoque as EstoqueAnterior, '' as EstoqueNovo, 'ESVAZIAMENTO' as Tipo
From Cad_Silo_Esvazia_Reg ES
Left Join Cad_Silo on (ES.CodSilo=Cad_Silo.CodSilo)
Left Join Cad_Produto CP on (CP.CodProd=Cad_Silo.CodProd)
Left Join Cad_Produto CP2 on (CP2.CodProd=Cad_Silo.CodUltProd)
Left Join Sys_UCTabUsers on (Sys_UCTabUsers.UCIdUser=ES.Usuario)
Where 1=1 and ES.CodProd is not null and ES.CodProd>0
Order By Cad_Silo.CodSilo, DtModificacao

Preciso fazer um filtro para esta consulta na qual o valor da data seja atribuído nas duas cláusulas where, porém, no primeiro select o campo data para o where é CS.DtModificacao, e no segundo select é ES.DtModificacao.
Como posso contornar esta situação?

Grato desde já,
Davi
« Última modificação: Janeiro 20, 2016, 07:00:30 am por soeletricavergani »

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Filtro para select com operador 'union' (duas cláusulas where)
« Responder #1 Online: Janeiro 13, 2016, 03:17:41 pm »
Crie uma view para a query e utilize a view na consulta.

Use sc_select_where(add) para atribuir where dinamico,  ou o próprio filtro se encarregará de filtrar pois as datas pertencem a mesma coluna do select.
Utilize aliases para as colunas.
« Última modificação: Janeiro 13, 2016, 04:16:34 pm por Haroldo »

soeletricavergani

  • Novato
  • *
  • Mensagens: 19
  • "[...] O serviço é alegria." Tagore
Re:Filtro para select com operador 'union' (duas cláusulas where)
« Responder #2 Online: Janeiro 13, 2016, 04:11:33 pm »
Grato!