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

Consulta de 2 Tablas

Estas en el tema de Consulta de 2 Tablas en el foro de SQL Server en Foros del Web. Saludos , Tengo la siguinte duda. Tengo 2 Tablas La de Empleados: Id_Empleado ...... Movimientos IdMovimiento IdEmpleado Fecha Monto Lo que quiero hacer es una ...
  #1 (permalink)  
Antiguo 17/08/2006, 06:54
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 19 años, 5 meses
Puntos: 0
Consulta de 2 Tablas

Saludos ,

Tengo la siguinte duda.

Tengo 2 Tablas La de
Empleados:
Id_Empleado
......

Movimientos
IdMovimiento
IdEmpleado
Fecha
Monto

Lo que quiero hacer es una consulta que me devuenva el saldo de todos los empleados dado una fecha
la cuestion s que si el empleado no tiene movimientos es esa fecha no aprarece en la consulta , yo quiero que si no tiene movimientos en esa fecha su saldo sea de cero y me aparezca el la consulta




muchas gracias por su ayuda

saludos
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #2 (permalink)  
Antiguo 17/08/2006, 07:25
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Código:
select IdEmpleado, sum(monto) as Total
From Empleados e (nolock)
Left outer join 
       Movimientos m (nolock)
On   e.IdEmpleado = m.IdEmpleado
Where
      m.Fecha = @MiVarFecha
Group by
      e.IdEmpleado
  #3 (permalink)  
Antiguo 17/08/2006, 07:48
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias Andres
Eso es mas o menos la consulta que tengo el problema es que solo trae los empleados que tienen movimientos en esa fecha y yo quiero que traiga todos los empleados y los que no tienen movimiento su saldo sea 0

Código:
SELECT	Trabajador.IdTrabajador
SUM(CASE WHEN TipodeConcepto = 0 THEN Movimientos.Monto ELSE Movimientos.Monto * (- 1) END )AS SaldoInicial 
FROM          Trabajador LEFT JOIN
   Trabajador.IdTrabajador = Movimientos.IdTrabajador 
where  Movimientos.FechaDeMovimiento < '08/17/2002'
Group by Trabajador.IdTrabajador
yo quisiera que me devolvira todos los trabajadores asi no tenga movimientos
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!

Última edición por JoseGCB; 17/08/2006 a las 07:59
  #4 (permalink)  
Antiguo 17/08/2006, 08:23
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Ok, me equivoque... la validacion de la fecha debe ir en el
On.
Código:
select IdEmpleado, sum(monto) as Total
From Empleados e (nolock)
Left outer join 
       Movimientos m (nolock)
On   e.IdEmpleado = m.IdEmpleado And
       m.Fecha = @MiVarFecha
Group by
      e.IdEmpleado
  #5 (permalink)  
Antiguo 17/08/2006, 13:05
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias por tu ayuda

La Consulta me funciono y hace lo que queria
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
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 06:49.