• Now i have modified this.

    Please see . its still failing

    DECLARE @AdjustmentBatch_ID INT

    DECLARE @Platform VARCHAR(20), @Type INT, @lStr NVARCHAR(1000),@TableName VARCHAR(20),@ColName VARCHAR(20)

    ,@parameters NVARCHAR(30)

    SELECT @Platform = '',@lStr = '',@TableName = '',@ColName = '', @AdjustmentBatch_ID = 15

    DECLARE @tblAmountOut TABLE(LegalEntity VARCHAR(10), Amount MONEY )

    --BEGIN TRY

    SELECT @Type = type,@Platform = Platform FROM dbo.Adjustment_Batch ab(NOLOCK)

    WHERE ab.AdjustmentBatch_ID = @AdjustmentBatch_ID AND ab.Status = 1

    SELECT @TableName = CASE

    WHEN @Type = 1 THEN 'GLEntry'

    WHEN @Type = 2 THEN 'GrossPremium'

    WHEN @Type = 3 THEN 'GrossClaim'

    WHEN @Type = 4 THEN 'CededPremium'

    WHEN @Type = 5 THEN 'CededClaim'

    END,

    @ColName = CASE

    WHEN @Type = 1 THEN 'BaseAmount'

    WHEN @Type = 2 THEN 'GrossWrittenPremium'

    WHEN @Type = 3 THEN 'IndemnityPaidLoss'

    WHEN @Type = 4 THEN 'CededWrittenPremium'

    WHEN @Type = 5 THEN 'ReinsuaranceIndemnityPaidLoss'

    END

    SELECT @lStr = N'DECLARE @tblAmount TABLE(LegalEntity VARCHAR(10), Amount MONEY );INSERT INTO @tblAmount (LegalEntity, Amount)'+

    'SELECT LegalEntity,SUM(CAST('+ @ColName +' as MONEY)) AS Amount FROM dbo.' + @TableName + ' t(NOLOCK)'+

    'WHERE t.AdjustmentBatch_ID = ' + CAST(@AdjustmentBatch_ID AS VARCHAR(20)) + ' GROUP BY t.LegalEntity '

    PRINT @lStr

    EXEC SP_executeSql @lstr

    ,@parameters = N'@tblAmountOut(LegalEntity VARCHAR(10), Amount MONEY ) TABLE OUTPUT '

    ,@tblAmountOut = @tblAmount OUTPUT

    -------Bhuvnesh----------
    I work only to learn Sql Server...though my company pays me for getting their stuff done;-)