Entao pessoal, estou criando filtros para uma determinada consulta e estou com duvida de como faze-la de forma elegante, basicamente tenho os seguintes filtros …
1 - Data Inicio
2 - Data Fim
3 - Dia da semana
4 - Tipo Ingresso
5 - Cliente
Comecei fazendo uma porrada de ifs, mas tah uma porcaria, tanto para ler, quanto para dar manutencao, ag tem alguma sugestao/exemplo de como fazer isso?
Você quer consultar de forma elegante poe uma DBA gostosa pra fazer a consulta, agora coloca teu código ai para ficar mais fácil que todos podemos ajudar.
charleston10
Use no seu SQL
Cabeçalho;
Corpo;
Rodapé;
Eu ensino isso para o pessoal fazer consultas dinâmicas, ao invés de usar 900 linhas de códigos como eu já peguei nego aqui da empresa
e você consegue diminuir pra 90 linhas.
Por exemplo seria assim:
date DataInicio;
date DataFim;
int DiaSemana;
int TipoIngresso;
int Cliente;
//Cabeçalho
String sSQL = "SELECT * FROM TABELA WHERE idCliente =" + Cliente
//Corpo
if ((DataInicio <> Null)&&(DataFim<>Null)) sSQL += sSQL + ' AND BETWEEN '+ DataInicio + ' AND ' + DataFim
if (DiaSemana <> Null) sSQL += sSQL + ' AND DiaSemana = ' + DiaSemana
//Rodapé
sSQL += sSQL + ' ORDER BY idCliente ASC'
Algo desse tipo man, só adaptar fiz no olhometro..
Hebert_Coelho
anderson.bonavides:
Você quer consultar de forma elegante poe uma DBA gostosa pra fazer a consulta, agora coloca teu código ai para ficar mais fácil que todos podemos ajudar.
honestamente não entendi como um DBA poderá ajudar nesse caso… O.o
DaniloAndrade
isso ai foi uma piada Hebert, “Como fazer Consulta com filtros de formar elegante ?” “poe uma DBA gostosa pra fazer a consulta”… eu achei engraçado :lol:
charleston10
Concordo… hahhahaha
R
raf4ever
charleston10:
Use no seu SQL
Cabeçalho;
Corpo;
Rodapé;
Eu ensino isso para o pessoal fazer consultas dinâmicas, ao invés de usar 900 linhas de códigos como eu já peguei nego aqui da empresa
e você consegue diminuir pra 90 linhas.
Por exemplo seria assim:
date DataInicio;
date DataFim;
int DiaSemana;
int TipoIngresso;
int Cliente;
//Cabeçalho
String sSQL = "SELECT * FROM TABELA WHERE idCliente =" + Cliente
//Corpo
if ((DataInicio <> Null)&&(DataFim<>Null)) sSQL += sSQL + ' AND BETWEEN '+ DataInicio + ' AND ' + DataFim
if (DiaSemana <> Null) sSQL += sSQL + ' AND DiaSemana = ' + DiaSemana
//Rodapé
sSQL += sSQL + ' ORDER BY idCliente ASC'
Algo desse tipo man, só adaptar fiz no olhometro..