Ajuda com query

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
hellyson
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 08 Nov 2010 2:36 pm
Localização: Diadema - SP

Senhores,

Tenho 3 menus:
UF
Cidade
Site

Uma tabela que contém os 3 campos:
UF
Cidade
Site

Na minha aplicação, se eu selecionar a UF = MG por exemplo, devará trazer somente as Cidades e Sites com UF = MG.
Se eu selecionar o Site = Centro, deverá trazer somente as Cidades e os UFs que tenham o Site = Centro
Se eu não selecionar nenhum Site, UF ou Cidade, na escola de qualquer um, iria trazer todos.

Fiz assim para cada menu (exemplo abaixo foi da cidade, porém estão todos iguais, só mudando o campo):


select
distinct cidade
from
tblSite
where
status = 'Ativo'
and
(
uf = '{campouf}' OR
cidade= '{campocidade}' OR
site= '{camposite}'
)
order by cidade

//Coloquei a string acima no menu cidade, se antes eu selecionar o Site = Centro, realmente irá mostrar somente as cidades que tem o Site = Centro, porém se eu não selecionar nada, não traz nada, queria algo assim:

select
distinct cidade
from
tblSite
where
status = 'Ativo'
and
(
if '{campouf}' = null then
ignoraclausula
else
uf = '{campouf}'
end
)
AND
(
if '{campocidade}' = null then
ignoraclausula
else
cidade = '{campocidade}'
end
)
AND
(
if '{camposite}' = null then
ignoraclausula
else
site= '{camposite}'
end
)
order by cidade

Agradeço quem puder me ajudar
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Olha hellyson, tu estava bem próximo do objetivo...

tente isto:

Selecionar tudo

Select Distinct cidade
  From tblsite
 Where status = 'Ativo'
   And ('{campouf}' Is Null Or uf = '{campouf}')
   And ('{campocidade}' Is Null Or cidade = '{campocidade}')
   And ('{camposite}' Is Null Or site = '{camposite}')
 Order By cidade
Qualquer coisa grita.
hellyson
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 08 Nov 2010 2:36 pm
Localização: Diadema - SP

Valeu!!!!

Funcionou perfeitamente.
Responder
  • Informação