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

duda con codigo sql

Estas en el tema de duda con codigo sql en el foro de Mysql en Foros del Web. Saludos tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select ( ( select sum ( antiguedad ) from antiguedad , recursohumano WHERE puestoantiguedad = ...
  #1 (permalink)  
Antiguo 26/10/2015, 15:25
 
Fecha de Ingreso: noviembre-2009
Mensajes: 37
Antigüedad: 14 años, 4 meses
Puntos: 0
duda con codigo sql

Saludos tengo este codigo:
Código MySQL:
Ver original
  1. select ((select sum(antiguedad) from antiguedad,recursohumano WHERE puestoantiguedad='Enfermero' and idfuncionario=numerofunc)
  2. +
  3. (select sum(diasasc) from ascensos,recursohumano  WHERE puestoasc='Enfermero' and numfuncasc=numerofunc and aschasta<=curdate())
  4. +
  5. (select sum(diasnomb) from legibles,recursohumano where puestonomb='Enfermero' and numerofunci=numerofunc )) as total;

Pero me arroja nada, mi pregunta es: tiene algo que ver que la tabla ascensos en este monento este vacia o que en legibles no encuentre el numerofunci=numerofunc.?
  #2 (permalink)  
Antiguo 26/10/2015, 16:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: duda con codigo sql

Hola Lavos:

Cita:
Pero me arroja nada, mi pregunta es: tiene algo que ver que la tabla ascensos en este monento este vacia o que en legibles no encuentre el numerofunci=numerofunc.?
Mucho ojo... una cosa es que la consulta arroje "nada" a que arroje un "null"... Null es un estado especial en Bd's, no puede definirse en realidad como un DATO en si, ni tampoco es vacio o cero... todas estas cosas son distintas. Cuando tienes un valor NULL y lo concatenas a un número, el resultado es NULL

Código MySQL:
Ver original
  1. mysql> select null + 1;
  2. +----------+
  3. | null + 1 |
  4. +----------+
  5. |     NULL |
  6. +----------+
  7. 1 row in set (0.01 sec)

Tal como lo infieres en tu post, si alguna de tus consultas está regresando un valor NULL entonces el resultado de la "suma" será NULL... lo que puedes hacer es utilizar la función IFNULL para verificar que las subconsultas regresen algo, si es el caso, puede concatenar un 0 como valor, que es el neutro aditivo para los numeros, es decir, algo así:

Código MySQL:
Ver original
  1. mysql> select IFNULL(NULL, 0) + 1;
  2. +---------------------+
  3. | IFNULL(NULL, 0) + 1 |
  4. +---------------------+
  5. |                   1 |
  6. +---------------------+
  7. 1 row in set (0.05 sec)

Cuando la consulta REGRESE UN VALOR DISTINTO DE NULL, entonces TOMA ESE VALOR:

Código MySQL:
Ver original
  1. mysql> select IFNULL(5, 0) + 1;
  2. +------------------+
  3. | IFNULL(5, 0) + 1 |
  4. +------------------+
  5. |                6 |
  6. +------------------+
  7. 1 row in set (0.00 sec)

Haz la prueba y nos comentas.

Saludos
Leo

Etiquetas: select, sql, tabla
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 12:42.