Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Estadisticas en Postgres( SELECT )

Estas en el tema de Estadisticas en Postgres( SELECT ) en el foro de PostgreSQL en Foros del Web. Hola que tal quisiera saber algun metodo para realizar lo siguiente: tengo mi formulario para estadisticas con checkbox donde puedo elegir "desea mostrar a usuario ...
  #1 (permalink)  
Antiguo 22/06/2011, 10:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Estadisticas en Postgres( SELECT )

Hola que tal quisiera saber algun metodo para realizar lo siguiente:
tengo mi formulario para estadisticas con checkbox donde puedo elegir
"desea mostrar a usuario que sean: hombres, Mujeres y/o Casados, solteros"
si todos los checkbox estarian activados la sentencia sql seria facil.
Cita:
select ... WHERE "sexo" = 'h' AND "sexo" = 'm' AND estado ='C' and estado ='S'
Pero Si solo activamos uno en de hombre, entonces la sentencia seria.
Cita:
select ... WHERE "sexo" = 'h'
...

y asi puedo tener demasiadas sentencias. como soluciono esto con un switch?? o puro if??? o con funciones en el postgres???
ayudenme xfavor. ojala se entendio mi pregunta.
  #2 (permalink)  
Antiguo 22/06/2011, 10:24
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Estadisticas en Postgres( SELECT )

En el lenguaje que esté tu formulario vas construyendo la sentencia, almacenándola en un string y luego ejecutas ese string (que es tu sentencia)
  #3 (permalink)  
Antiguo 22/06/2011, 16:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 35
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Estadisticas en Postgres( SELECT )

Claro, como dice Heimish, el "SELECT * FROM tabla WHERE" sería siempre fijo.
Después hacés un control para ver que checkboxs están marcados, y si está marcado lo añadis al SQL, ejemplo:
$sql = "SELECT * FROM tabla WHERE";
if(check_sexo == 'h')$sql .= " sexo = 'h'";
if(check_sexo == 'm')$sql .= " sexo = 'm'";
if(check_estado == 's')$sql .= " estado = 's'";
if(check_estado == 'c')$sql .= " estado = 'c'";

Lo que no logro es como hacer para poner los condicionales (AND u OR). Si los pongo en el final de una sentencia, puede que no haya más condiciones y tire error por terminar en AND/OR.
Habría que preguntar si el check anterior tiene valor, escribir por ejemplo: AND estado = 's' sino solo: estado = 's'. Y así con todas.
  #4 (permalink)  
Antiguo 24/06/2011, 01:57
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Estadisticas en Postgres( SELECT )

Ponlos al principio de las condiciones que estes escribiendo, no al final, de esa forma siempre añadiras un " AND condicion" o un " OR condicion"

Un truco básico pero que funciona para librarte del problema en la primera condición es empezar la sentencia con WHERE 1=1, así siempre tendrás algo en el WHERE y el añadir condiciones no te dará problemas.

Etiquetas: estadisticas, postgres, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:37.