Bases de Datos > SQL Server
Sentencia Sql Con Where
chryobcn:
Saludos
Estoy intentando hacer la siguiente consulta:
--- Código: Text --- SELECT H.num_habitacio, H.data_alta, I.nom AS incidencia, H.data_fin, E.nom + ' ' + E.cognom1 + ' ' + E.cognom2 AS nombre FROM incidencia_habitacio H, incidencia I, treballador E WHERE I.codi=H.codi_incidencia AND E.dni=H.dni_treballador
El problema esta que el valor H.dni_treballador por defecto es NULL hasta que no se inserta otro valor mas adelante, por lo tanto esta consulta no me devuelve ningun valor.
Al tener len la tabla registros con este campo en NULL y con valores validos no se como hacer para evitar que si es NULL muestre los resultados.
Gracias
JuanK:
utiliza la sentencia nvl, la cual reemplaza null por un valor valido.. ej:
para hacer que cuando H.dni_treballador sea null, no se retorne nada asi:
--- Código: Text --- SELECT H.num_habitacio, H.data_alta, I.nom AS incidencia, H.data_fin, E.nom + ' ' + E.cognom1 + ' ' + E.cognom2 AS nombre FROM incidencia_habitacio H, incidencia I, treballador EWHERE I.codi=H.codi_incidencia AND E.dni=H.dni_treballadorAND nvl(H.dni_treballador,-1) <> -1;
chryobcn:
Saludos nuevamente
Desgraciadamente no me accepta el nvl(), para más información utilizo sql server 2000 la versión personal.
He probado introduciendo la clausula AND H.dni_treballador IS NOT NULL pero claro si este valor es null no me muestra un registro con ese campo null. Lo que necesito es que me muestre los demas valores de ese registro menos los que esten relacionados con el valor NULL.
Para aclarar las cosas explicare por encima lo que tengo:
En una parrilla cargo la información de la tabla1: el numero de habitacion y el tipo de incidencia (estos datos siempre existen) y el nombre del trabajador que ha solucionado esa incidencia (este esta en otra tabla que lo recupero mediante el dni que tengo en la tabla1) el problema esta en que el dni del trabajador es NULL hasta que no se soluciona la incidencia y necesito que se cargen todos los registros aunque el nombre del trabajador este vacio.
Espero que alguien pueda darme una solución, si existe, sino tendre que quitar el nombre de la parrilla.
Gracias.
JuanK:
lamentablemente no se como tratar ese tema en sql server.. solo en oracle..
bye
chryobcn:
Gracias por tu ayuda, a malas quitare esa información de la parrilla y solo mostrare si se ha solucionado.
Navegación
[#] Página Siguiente
Ir a la versión completa