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

problema con consulta en sql

Estas en el tema de problema con consulta en sql en el foro de Bases de Datos General en Foros del Web. Bueno parece que tengo algun error de sintaxis o algo , la cosa es que no me tira la cantidad de registros que deberia y ...
  #1 (permalink)  
Antiguo 31/07/2012, 12:15
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe
Mensajes: 52
Antigüedad: 20 años, 11 meses
Puntos: 0
problema con consulta en sql

Bueno parece que tengo algun error de sintaxis o algo , la cosa es que no me
tira la cantidad de registros que deberia y no encuentro el error

la consulta es esta:

Código SQL:
Ver original
  1. SELECT
  2.     Clientes.NRO_PROV,
  3.     Clientes.NYAP_PROV
  4. FROM Clientes LEFT OUTER JOIN NPedidoCab
  5.     ON Clientes.NRO_PROV = NPedidoCab.PED_CLIENTE
  6.         AND NPedidoCab.PED_VIAJA="61"
  7.         AND NPedidoCab.PED_FECHA LIKE "2012-07-26 %"
  8. WHERE
  9.     NPedidoCab.PED_CLIENTE IS NULL
  10.     AND (Clientes.VIAJA1_PROV="61"
  11.         OR Clientes.VIAJA2_PROV="61"
  12.         OR Clientes.VIAJA3_PROV="61"
  13.         OR Clientes.VIAJA4_PROV="61")
  14.     AND Clientes.SE1JU_PROV="S"

Última edición por gnzsoloyo; 31/07/2012 a las 19:02 Razón: No usó etiquetas de codigo.
  #2 (permalink)  
Antiguo 31/07/2012, 12:35
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe
Mensajes: 52
Antigüedad: 20 años, 11 meses
Puntos: 0
Respuesta: problema con consulta en sql

Alguna sugerencia ....
  #3 (permalink)  
Antiguo 31/07/2012, 19:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con consulta en sql

Bueno, no hay errores de sintaxis evidentes, pero eso depende de qué DBMS estés usando, porque algunos detalles en las consultas no son iguales en todos ellos.
¿Oracle, SQL Server, DB2, Postgre, MySQL... qué usas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 01/08/2012, 07:25
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe
Mensajes: 52
Antigüedad: 20 años, 11 meses
Puntos: 0
Respuesta: problema con consulta en sql

hola , gracias por tu respuesta.

estoy usando el motor MySQL.
  #5 (permalink)  
Antiguo 01/08/2012, 07:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con consulta en sql

Bueno, por un lado, las comillas (") se usan para los nombres de campos, tablas, etc. No para cadenas de texto, a menos que se reconfigure el servidor (cosa no muy conveniente).
Por otro lado, LIKE se usa para comparaciones aproximadas en cadenas de texto, no para fechas o numeros. Los resultados pueden se erráticos.
Además, LIKE no se usa en el FROM, y esas condiciones que pones corresponde que vayan en el WHERE, más que en el FROM.

Código MySQL:
Ver original
  1.     C.NRO_PROV,
  2.     C.NYAP_PROV
  3. FROM Clientes C LEFT JOIN NPedidoCab NP
  4.     ON C.NRO_PROV = NP.PED_CLIENTE
  5.     NP.PED_CLIENTE IS NULL
  6.     AND NP.PED_VIAJA='61'
  7.     AND DATE(NP.PED_FECHA)='2012-07-26'
  8.     AND (C.VIAJA1_PROV='61'
  9.         OR C.VIAJA2_PROV='61'
  10.         OR C.VIAJA3_PROV='61'
  11.         OR C.VIAJA4_PROV='61')
  12.     AND C.SE1JU_PROV='S'
También sucede que esta condición:
Código MySQL:
Ver original
  1. AND NP.PED_VIAJA='61'
  2.     AND DATE(NP.PED_FECHA)='2012-07-26'
es absurda en el caso que usas, porqu estás pidiendo:
Código MySQL:
Ver original
  1. NP.PED_CLIENTE IS NULL
y como NP.PED_CLIENTE lo usas como clave relacional en el FROM, si es NULL, esos dos campos serán también NULL, por lo que la consulta completa no devolverá datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql
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 14:40.