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

Encontrar un registro que no cumple condición

Estas en el tema de Encontrar un registro que no cumple condición en el foro de Mysql en Foros del Web. Hola a tod@s. Tengo una base de datos en la que tengo registrados una serie de mensajes que he ido enviando. Quería saber los mensajes ...
  #1 (permalink)  
Antiguo 07/05/2011, 06:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 9 meses
Puntos: 58
Encontrar un registro que no cumple condición

Hola a tod@s.

Tengo una base de datos en la que tengo registrados una serie de mensajes que he ido enviando. Quería saber los mensajes que he enviado este año y he puesto:

SELECT COUNT(*) FROM envios WHERE year(fecha)="2011"

La consulta me funciona bien y me devuelve 7978 registros.

Pero ahora he querido ver los mensajes que he mandado para cada provincia y he hecho la siguiente consulta:

SELECT COUNT(*) FROM envios e, localidades l, provincias p WHERE year(fecha)="2011" AND e.idLoc = l.idLoc AND l.idProv = p.idProv AND provincia="Sevilla"

He repetido esta consulta para cada provincia, y al sumar todos los resultados, esperando que sumaran 7978, me he llevado una sorpresa cuando el resultado ha sido 7977.

La tabla "envios" tiene los siguientes campos:

idEnvio
mensaje
idLoc (identificador de localidad que enlaza con tabla "localidades", que a su vez enlaza con tabla "provincias")
fecha (tipo timestamp)

Me gustaría saber que consulta puedo hacer para saber cual es ese registro que me falta. He probado varias opciones pero ninguna me devuelve nada.
  #2 (permalink)  
Antiguo 07/05/2011, 09:04
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Encontrar un registro que no cumple condición

Código MySQL:
Ver original
  1. FROM envios
  2. WHERE year(fecha)="2011"
  3. AND idLoc NOT IN
  4. (SELECT e.idLoc
  5.  FROM envios e, localidades l, provincias p
  6.  WHERE year(fecha)="2011" AND e.idLoc = l.idLoc AND l.idProv = p.idProv AND
  7.  (provincia="Sevilla" OR provincia="Madrid" OR ...))

Tendrás que poner los OR necesarios para todas las provincias.
  #3 (permalink)  
Antiguo 07/05/2011, 09:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 9 meses
Puntos: 58
Respuesta: Encontrar un registro que no cumple condición

¡Sí, funciona!
Había probado con NOT IN, pero no lo había puesto como correspondía.
Ya apareció el registro fugado
¡Gracias!

Un saludo.

Etiquetas: condición, cumple, encontrar, registro
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 09:59.