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

[SOLUCIONADO] Problemas condición WHERE

Estas en el tema de Problemas condición WHERE en el foro de Mysql en Foros del Web. Buenas tardes, @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT CASE WHEN Estadisticas_UMTS . SAR_RDA . LOCALIDAD IS NULL THEN 'Sin_Definir' WHEN Estadisticas_UMTS . SAR_RDA . ...
  #1 (permalink)  
Antiguo 22/01/2015, 15:54
 
Fecha de Ingreso: enero-2013
Mensajes: 64
Antigüedad: 11 años, 3 meses
Puntos: 0
Problemas condición WHERE

Buenas tardes,

Código SQL:
Ver original
  1. SELECT CASE WHEN Estadisticas_UMTS.SAR_RDA.LOCALIDAD IS NULL THEN 'Sin_Definir'
  2. WHEN Estadisticas_UMTS.SAR_RDA.LOCALIDAD IS NOT NULL THEN Estadisticas_UMTS.SAR_RDA.LOCALIDAD END LOCALIDAD,
  3. CASE WHEN Estadisticas_UMTS.SAR_RDA.PARTIDO IS NULL THEN 'Sin_Definir'
  4. WHEN Estadisticas_UMTS.SAR_RDA.PARTIDO IS NOT NULL THEN Estadisticas_UMTS.SAR_RDA.PARTIDO END PARTIDO,
  5. CASE WHEN Estadisticas_UMTS.SAR_RDA.PROVINCIA IS NULL THEN 'Sin_Definir'
  6. WHEN Estadisticas_UMTS.SAR_RDA.PROVINCIA IS NOT NULL THEN Estadisticas_UMTS.SAR_RDA.PROVINCIA END PROVINCIA,
  7. CASE WHEN Estadisticas_UMTS.SAR_RDA.NODO IS NULL THEN 'Sin_Definir'
  8. WHEN Estadisticas_UMTS.SAR_RDA.NODO IS NOT NULL THEN Estadisticas_UMTS.SAR_RDA.NODO END NODO,
  9. ERBS_EUTRANCELLFDD_hpps.EnodeB,
  10. ERBS_EUTRANCELLFDD_hpps.Cell,  
  11. ERBS_EUTRANCELLFDD_hpps.START,
  12. SUM(ERBS_EUTRANCELLFDD_hpps.pmPdcpVolDlDrb+ERBS_EUTRANCELLFDD_hpps.pmPdcpVolDlSrb)/8/1E3 AS 'Trafico_DL_MBytes',
  13. SUM(ERBS_EUTRANCELLFDD_hpps.pmPdcpVolUlDrb+ERBS_EUTRANCELLFDD_hpps.pmPdcpVolUlSrb)/8/1E3 AS 'Trafico_UL_MBytes'
  14. FROM ERBS_EUTRANCELLFDD_hpps
  15. LEFT JOIN Estadisticas_UMTS.SAR_RDA ON ERBS_EUTRANCELLFDD_hpps.Cell = Estadisticas_UMTS.SAR_RDA.SECTOR
  16. GROUP BY Estadisticas_UMTS.SAR_RDA.PROVINCIA
  17. ORDER BY ERBS_EUTRANCELLFDD_hpps.START ASC

Y me tren OK los resultados.

LOCALIDAD;PARTIDO;PROVINCIA;NODO;EnodeB;Cell;start ;Trafico_DL_MBytes;Trafico_UL_MBytes
Merlo;Merlo;Buenos Aires;LB0011;LB0011;LB0011A;2014-12-01;544293.62675;84987.942
Sin_Definir;Sin_Definir;Sin_Definir;Sin_Definir;LC 0081;LC0081A;2014-12-01;183036.911875;34439.158


El problema está cuando quiero definir que sólo me traiga los resultados de la LOCALIDAD Sin_Definir.

Lo que hago es agregar:


Código SQL:
Ver original
  1. WHERE PROVINCIA='Sin_Definir'

Y no me devuelve resultados.

Pero si defino:

Código SQL:
Ver original
  1. WHERE PROVINCIA='Buenos Aires'
Me trae los resultados correspondientes:

LOCALIDAD;PARTIDO;PROVINCIA;NODO;EnodeB;Cell;start ;Trafico_DL_MBytes;Trafico_UL_MBytes
Merlo;Merlo;Buenos Aires;LB0011;LB0011;LB0011A;2014-12-01;544293.62675;84987.942


Qué puedo hacer para solucionar.

Muchas gracias

Última edición por gnzsoloyo; 23/01/2015 a las 04:34 Razón: MAL ETIQUETADO DE CODIGO
  #2 (permalink)  
Antiguo 22/01/2015, 16:19
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problemas condición WHERE

Hola facundojr07:

Mucho ojo... una cosa es que en el CASE-WHEN tú estés colocando la cadena 'Sin_Definir' y otra cosa es que la consulta tenga efectivamente ese valor...

Tu condición en realidad debería quedar así:

Código SQL:
Ver original
  1. WHERE PROVINCIA IS NULL...

ya que la columna toma el valor Sin_Definir una vez que se ha ejecutado la consulta... otra forma, aunque menos eficiente, sería filtrar los datos como una SUBCONSULTA, es decir, algo como esto:

Código SQL:
Ver original
  1. SELECT * FROM
  2. (
  3. Aquí pones toda tu consulta
  4. ) T
  5. WHERE PROVINCIA='Sin_Definir'

En este caso, ahora si la consulta se ejecuta primero y la columna toma el valor que pusiste en el CASE-WHEN.

haz la prueba y nos comentas.

Saludos
Leo.

Última edición por gnzsoloyo; 23/01/2015 a las 04:34
  #3 (permalink)  
Antiguo 23/01/2015, 09:20
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problemas condición WHERE

... y otra cosa, no hay necesidad de comparar dos veces en los CASE-WHEN, dado que las condiciones son mutuamente excluyentes, simplemente haz uso de la cláusula ELSE

Código MySQL:
Ver original
  1. ...
  2.    WHEN Estadisticas_UMTS.SAR_RDA.PROVINCIA IS NULL THEN
  3.       'Sin_Definir'
  4.    WHEN Estadisticas_UMTS.SAR_RDA.PROVINCIA IS NOT NULL THEN
  5.       Estadisticas_UMTS.SAR_RDA.PROVINCIA
  6. END PROVINCIA,
  7. ...

Es lo mismo a poner

Código MySQL:
Ver original
  1. ...
  2.    WHEN Estadisticas_UMTS.SAR_RDA.PROVINCIA IS NULL THEN
  3.       'Sin_Definir'
  4.    ELSE
  5.       Estadisticas_UMTS.SAR_RDA.PROVINCIA
  6. END PROVINCIA,
  7. ...

Saludos
Leo.

Etiquetas: condición, join, 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 21:43.