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

Unir una tabla con inner Join

Estas en el tema de Unir una tabla con inner Join en el foro de SQL Server en Foros del Web. Buenas noches. Esperando se encuentren bien, estoy teniendo la siguiente situación, en mi trabajo hay un departamento que quiere llevar el control de las nominas ...
  #1 (permalink)  
Antiguo 07/02/2015, 18:01
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 15 años, 7 meses
Puntos: 22
Unir una tabla con inner Join

Buenas noches.

Esperando se encuentren bien, estoy teniendo la siguiente situación, en mi trabajo hay un departamento que quiere llevar el control de las nominas que se generan. En ese sentido, hay una tabla que se llama procedimientos y como tal, tiene los siguientes campos:

No Descripcion Cant Fecha Monto
1 Bono Vacacional - Enero 5 2014-01-07 10000
2 Bono Vacacional - Febrero 40 2015-02-07 20000
3 Empleados fijos - Enero 20 2015-01-01 30000
4 Empleados fijos - Febrero 20 2015-02-07 30000

Hay dos tipos de nominas como ellos le dicen, empleados fijos y Bonos vacacionales.

Como están en una misma tabla con este código:

Código SQL:
Ver original
  1. SELECT datename(MONTH, empfijos.fecha) AS empMes, SUM(empfijos.monto) AS empSuma, SUM(empfijos.Cant) AS empCantidad,
  2.  
  3. SUM(bono.monto) AS bonoSuma, SUM(bono.Cant) AS bonoCantidad
  4.  
  5. FROM procedimientos empfijos
  6.  
  7. INNER JOIN procedimientos bono ON  datename(MONTH, empfijos.fecha) = datename(MONTH, bono.fecha)
  8.  
  9. WHERE empfijos.descripcion LIKE '%Empleados%' AND bono.descripcion LIKE '%Bono%'
  10.  
  11. GROUP BY datename(MONTH, empfijos.fecha)


puedo obtener el resultado siguiente:

empMes empSuma empCantidad bonoSuma bonoCantidad
Enero 30000 20 10000 5
Febrero 30000 20 20000 40

Ahora hasta aquí todo esta bien, el tema es que si por ejemplo si en febrero han pagado la nomina de empleados fijos, y no han pagado el bono vacacional, solo me aparecen los registros de enero aunque haya uno que se pago.

Es posible que aparezca el registro de febrero aunque sea con el empleado fijo como esta a continuacion?

empMes empSuma empCantidad bonoSuma bonoCantidad
Enero 30000 20 10000 5
Febrero 30000 20 0 0

Saludos.

Última edición por jeremiselxi; 08/02/2015 a las 07:53
  #2 (permalink)  
Antiguo 09/02/2015, 09:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Unir una tabla con inner Join

usa left join en lugar de inner join :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 20/02/2015, 06:22
 
Fecha de Ingreso: febrero-2015
Ubicación: Santiago
Mensajes: 6
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Unir una tabla con inner Join

Cita:
Iniciado por Libras Ver Mensaje
usa left join en lugar de inner join :)
Como bien dice libras, usa LEFT JOIN para que te muestre los datos aunque no hayan coincidencia en la busqueda.

Etiquetas: campo, join, select, siguiente, 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 02:49.