none
Sumatoria de multiplicaciones RRS feed

  • Pregunta

  • Hola a todos, alguien me podría explicar por que la siguiente consulta no realiza la suma de esta linea de código.

    SUM((H.Horas_Normales * t.Valor_Hora) + (h.Horas_Extras * t.Valor_Hora_Extra)) as [HH],

    Lo que quiero es que multiplique el valor de las horas normales por la cantidad de horas normales trabajadas, y ademas multiplique las horas extras realizadas por el valor de las horas extras del trabajador al que se le cargan las horas(todos tienen distinto valor de hora normal y extra), esos resultados sumarlos y que me muestre el total en una columna HH y en una sola fila, en este caso las HH de cada proyecto. Efectivamente la multiplicación la realiza bien, por el valor de cada trabajador, pero cuando la muestra en el resultado, las separa por trabajador. Es decir en ves de mostrarme la sumatoria del total de horas normales y extras de todos los trabajadores en una sola fila, me las muestra por separado y no las suma.

    

    Les dejo el SP completo para mayor entendimiento.

    AS
    BEGIN
    	SET NOCOUNT ON;
    	WITH EgresosTrabajador AS
    	(
        SELECT
    	p.Fecha_Creacion as [Fecha Creación Proyecto],
    	P.Descripcion_Proyecto as "Nombre Proyecto", 
    	P.Fecha_Inicio_Obra as "F. Ini. Obra", 
    	P.Fecha_Termino_Obra as "F. Ter. Obra", 
    	P.Status_Factura as "Status Factura", 
    	(T.Primer_Nombre +' '+ T.Apellido_Paterno +' '+ T.Apellido_Materno) AS "Jefe Proyecto",
    	P.Estado_Proyecto as "Estado Proyecto", 
    	P.Centro_Costo AS [Centro_Costo],
    	P.Rut_Cliente AS [Rut_Cliente],
    	isnull(MAX(P.Valor_Total), 0) AS [Valor Proyecto],
    	isnull(SUM(E.Monto), 0) AS [Logistica],	   
    	ISNULL((MAX(P.Valor_Total) * p.Administracion), 0) AS [Administración]
        FROM 
    	   tbl_proyecto P 
    	   LEFT JOIN Tbl_Trabajador T ON (P.Jefe_Proyecto = T.Rut)
    	   LEFT JOIN Tbl_Egresos E ON (P.Centro_Costo = E.Centro_Costo_Proyecto)
    	   AND (E.Estado = 'Aprobado')
        
        GROUP BY
    	p.Fecha_Creacion, 
    	P.Descripcion_Proyecto, 
    	P.Fecha_Inicio_Obra, 
    	P.Fecha_Termino_Obra, 
    	P.Status_Factura, 
    	T.Primer_Nombre, 
    	T.Apellido_Paterno, 
    	T.Apellido_Materno, 
    	P.Estado_Proyecto, 
    	P.Centro_Costo, 
    	P.Rut_Cliente,
    	P.Valor_Total,
    	p.Administracion
    	)
    
    	SELECT 
    	[Fecha Creación Proyecto],
    	C.Nombre as [Empresa],
    	[Nombre Proyecto],
    	[F. Ini. Obra],
    	[F. Ter. Obra], 
    	[Status Factura], 
    	[Jefe Proyecto],
    	[Estado Proyecto], 
    	isnull(MAX(E.[Valor Proyecto]), 0) AS [Valor Proyecto],
    	isnull(MAX(E.Logistica), 0) AS [Logistica],
    	SUM((H.Horas_Normales * t.Valor_Hora) + (h.Horas_Extras * t.Valor_Hora_Extra)) as [HH],
    	MAX(E.Administración) as [Administración],
    	(isnull(MAX(E.[Valor Proyecto]), 0) - isnull(MAX(E.Logistica), 0) - SUM(H.Horas_Normales * t.Valor_Hora) + (h.Horas_Extras * t.Valor_Hora_Extra) - MAX(E.Administración)) as [Utilidad]
    
    	from   EgresosTrabajador E
        LEFT JOIN Tbl_Cliente C ON (E.Rut_Cliente = C.Rut)
        LEFT JOIN tbl_hh H ON (E.centro_costo = H.centro_costo_proyecto)
    	LEFT JOIN Tbl_Trabajador T ON (h.Rut_Trabajador = t.Rut)
    
    	GROUP BY
        e.Centro_Costo, 
    	C.Nombre, 
    	[Nombre Proyecto],
    	[F. Ini. Obra],
    	[F. Ter. Obra], 
    	[Status Factura], 
    	[Jefe Proyecto],
    	[Estado Proyecto], [Fecha Creación Proyecto],
    	t.valor_Hora, T.Valor_Hora_Extra,
    	[Horas_Normales],
    	[Horas_Extras];
    End


    • Editado adriian.91 martes, 7 de marzo de 2017 18:10
    martes, 7 de marzo de 2017 18:09

Respuestas