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

Como hacer una consulta SQL?

Estas en el tema de Como hacer una consulta SQL? en el foro de Bases de Datos General en Foros del Web. aupa! Tengo un problema con una consulta que tengo que hacer. Tendria que combinar unas condiciones. CONDICION1 --> se tiene que cumplir siempre CONDICION2 --> ...
  #1 (permalink)  
Antiguo 16/05/2006, 06:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 48
Antigüedad: 19 años, 11 meses
Puntos: 0
Exclamación Como hacer una consulta SQL?

aupa!
Tengo un problema con una consulta que tengo que hacer.
Tendria que combinar unas condiciones.
CONDICION1 --> se tiene que cumplir siempre
CONDICION2 --> que contiene otras condiciones (SUBCONDICION1 y SUBCONDICION2), si se cumple esta condicion no se cumple la condicion3
CONDICION3 --> que contiene otras condiciones (SUBCONDICION3 y SUBCONDICION4 y SUBCONDICION5), si se cumple esta condicion no se cumple la condicion3

La consulta mas o menos seria algo asi ...
SELECT campos FROM tabla WHERE CONDICION1 AND CONDICION2 OR CONDICION3

No se si los OR o los AND estan mal. Si me podeis decir si esta bien la estructura os lo agradeceria

Un saludo
  #2 (permalink)  
Antiguo 16/05/2006, 08:53
 
Fecha de Ingreso: abril-2006
Mensajes: 19
Antigüedad: 18 años
Puntos: 0
pareceria que tu sentencia esta correcta, ya que el AND tiene mayor pecedencia que el OR, o sea que se ejecutara primero.
  #3 (permalink)  
Antiguo 16/05/2006, 09:06
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Cita:
Iniciado por aitzi
aupa!
CONDICION2 --> que contiene otras condiciones (SUBCONDICION1 y SUBCONDICION2), si se cumple esta condicion no se cumple la condicion3
CONDICION3 --> que contiene otras condiciones (SUBCONDICION3 y SUBCONDICION4 y SUBCONDICION5), si se cumple esta condicion no se cumple la condicion3
Perdón, pero no entiendo que significa que si se cumple la condición 2 no se cumple la condición 3. ¿Querés verificar que, si se cumple condicion2 no se cumpla condicion3?. Y creo que te debes haber equivocado al tipear, porque después decis que si se cumple condicion3 no se cumple condicion3.
Saludos.
  #4 (permalink)  
Antiguo 16/05/2006, 09:07
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Como comentario, te recomendaria por experiencia que lo pongas asi:

SELECT campos FROM tabla WHERE CONDICION1 AND (CONDICION2 OR CONDICION3)

Cerrado en paréntesis la condición OR...
Saludos...
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 16/05/2006, 09:26
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Cita:
Iniciado por Notwen
Perdón, pero no entiendo que significa que si se cumple la condición 2 no se cumple la condición 3. ¿Querés verificar que, si se cumple condicion2 no se cumpla condicion3?. Y creo que te debes haber equivocado al tipear, porque después decis que si se cumple condicion3 no se cumple condicion3.
Saludos.
No me habia percatado al respecto, tienes razón, sería bueno que sea un poco más especifico
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #6 (permalink)  
Antiguo 17/05/2006, 05:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 48
Antigüedad: 19 años, 11 meses
Puntos: 0
De acuerdo

Puede que sea por la base de datos. Yo diria que por logica habia definido bien la sintaxis pero al parecer access no lo percibe asi. La solucion que da access es la siguiente

SELECT campos FROM tabla WHERE CONDICION1 OR CONDICION2

CONDICION1 -->SUBCONDICON1 AND SUBCONDICION2 AND SUBCONDICION3
CONDICION2 -->SUBCONDICION1 AND SUBCONDICION2 AND SUBCONDICION4

Yo queria intentar inpedir la repeticion de esas dos subcondiciones. No se si se podra pero por ahora lo dejo asi.
Gracias por echar una mano. Saludos
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 01:48.