FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Duda con los JOINS por la izquierda o derecha
Hola A Todos
Alguien Sabe Como Hacer Para Que Un Join (ya Sea Por Izquierda O Por Derecha) No Devuelva Valores Nulos, La Consulta Es Algo Asi: Select Folio, Fecha, Total, Sum(monto) As Pagado From Nventa Left Join Pagonv On Nventa.folio=pagonv.folionv Group By Folio,nventa.fecha,total La Consulta Lo Que Hace Es Obtener La Suma De Lo Pagado Por Cada Nota De Venta, Pero Al No Haber Pago (en La Tabla De Detalle) Me Regresa Valores Nulos Y Yo Lo Que Necesito Es Que Coloque Ceros En Dichos Registros. De Antemano Gracias Por Su Atencion. |
#2
|
|||
|
|||
¡¡¡¡bingo!!!!
He llegado a una solucion aparentemente buena pero si alguien conoce otra mejor estoy abierto a sus comentarios.
La forma en que lo solucione fue la siguiente: Realice una UNION con una tabla con campos CEROS en los campos numéricos y los mismos niveles de agrupamiento, por tanto me devuelve una tabla con los mismos registros pero en los valores númerico tiene CEROS, luego simplemente con otra consulta obtengo con la clausula MAX los valores maximos y ¡¡¡¡BINGO!!!! obtengo el resultado deseado de CEROS EN LUGAR DE NULOS. Si alguien conoce otra forma mejor hagamela saber. Espero le sirva a los que tienen el mismo problema que yo. Saludos. |
#3
|
||||
|
||||
Hola.
Una solución es usar inner joins, que solo te va a unir registros existentes, por lo que siempre tendrán valor, y podrás sumarlos. Otra solución es utilizar funciones como COALESCE(valor1, valor2) que devuelven el primer valor no nulo. De esta forma puedes indicar que quieres sumar el valor de un campo, o bien un 0 en caso de que el campo sea nulo. Es decir : select sum(coalesce(campo, 0)), .... from .... NOTA: Dependiendo del Servidor SQL que utilizes, habrá disponibles unas u otras funciones : COALESCE, ISNULL, NVL, .... Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
|||
|
|||
El detalle esta en que necesito presisamente que me devuelva todos los registros por eso uso LEFT JOIN y necesito todos los valores no solo el primer no nulo.
|
#5
|
||||
|
||||
Cita:
La función COALESCE o una similar es exactamente lo que necesitas. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
|