Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/05/2012, 14:55
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta macabra

Hola Rogeliomx...

veamos si entendí correctamente... la consulta deberá traer todos los registros donde tu campo donde el campo observación sea NULL, sin importar el tipo_de_pago, PERO SI EL tipo_de_pago ES 8 ENTONCES SÓLO SE DEBEN MOSTRAR LOS CAMPOS DONDE OBSERVACIÓN SEA NO NULL correcto???

checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+--------------+-------------+
  3. | id   | tipo_de_pago | observacion |
  4. +------+--------------+-------------+
  5. |    1 |            1 | NULL        |
  6. |    2 |            2 | algo        |
  7. |    3 |            3 | NULL        |
  8. |    4 |            5 | otro        |
  9. |    5 |            8 | NULL        |
  10. |    6 |            8 | algo        |
  11. +------+--------------+-------------+
  12. 6 rows in set (0.05 sec)
  13.  
  14. mysql> SELECT * FROM tabla
  15.     -> WHERE
  16.     -> (tipo_de_pago != 8 AND observacion IS NULL)  OR
  17.     -> (tipo_de_pago = 8 AND observacion IS NOT NULL);
  18. +------+--------------+-------------+
  19. | id   | tipo_de_pago | observacion |
  20. +------+--------------+-------------+
  21. |    1 |            1 | NULL        |
  22. |    3 |            3 | NULL        |
  23. |    6 |            8 | algo        |
  24. +------+--------------+-------------+
  25. 3 rows in set (0.00 sec)

Los registros con id's (2 y 4) no se muestran porque la observación NO ES IGUAL A NULL. El registro con id 5 no se muestra PUES AUNQUE LA OBSERVACIÓN ES NULL, EL tipo_de_pago es 8... por lo tanto no cumple con la segunda condición. Checa el otro post que publicaste para entender mejor por qué el uso de los paréntesis.

Si esto no es lo que necesitas sería conveniente que pongas algunos datos de ejemplo y a partir de estos nos digas que es lo que necesitas de salida, para poder darte una mejor respuesta.

Saludos
Leo.