ALTER PROCEDURE [dbo].[CBIATMTOPYBINAMARGATARIF] ( @EmployeeID VARCHAR(20) ,@StartDate VARCHAR(20) ,@EndDate VARCHAR(20) ) AS --DECLARE @EmployeeID VARCHAR(20) = '06120011' --DECLARE @StartDate VARCHAR(20) = '20221101' --DECLARE @EndDate VARCHAR(20) = '20221130' DECLARE @CTARIF TABLE ( EmployeeID VARCHAR(20) ,PremiHelper DECIMAL(22,2) ,UangMakan DECIMAL(22,2) ,PremiOperator DECIMAL(22,2) ) INSERT INTO @CTARIF SELECT @EmployeeID, * FROM (SELECT FieldName, Tarif FROM CTARIFBINAMARGA) AS SourceTable PIVOT (MAX(Tarif) FOR FieldName IN ( [PremiHelper], [UangMakan], [PremiOperator]) ) AS pvt SELECT DISTINCT md.EmployeeID, md.PremiHelper, md.UangMakan, md.PremiOperator ,CONVERT(DECIMAL(22,2),CASE WHEN md.PremiHelper <> '' THEN md.PremiHelper ELSE '0' END) * tarif.PremiHelper AS TarifPremiHelper ,CONVERT(DECIMAL(22,2),CASE WHEN md.UangMakan <> '' THEN md.UangMakan ELSE '0' END) * tarif.UangMakan AS TarifUangMakan ,CONVERT(DECIMAL(22,2),CASE WHEN md.PremiOperator <> '' THEN md.PremiOperator ELSE '0' END) * tarif.PremiOperator AS TarifPremiOperator FROM CUSPYDATAPREMIBINAMARGA AS md LEFT JOIN @CTARIF AS tarif ON md.EmployeeID = tarif.EmployeeID WHERE md.EmployeeID = @EmployeeID AND (md.StartDate BETWEEN @StartDate AND @EndDate)