• Bob - Thank you as well for your reply... I apologize for not explaining this as well as possible 🙂

    Here is a small example of the coding used for the equal monthly distribution I was reffering to in my original post: (I shortened it to only show you two months of calculation obviously to save space here. So the completed version goes out 24 months, not 2.)

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    CREATE PROCEDURE usp_WeightedDistCalc

    WITH ENCRYPTION

    AS

    BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

    SET NOCOUNT ON;

    -- Insert statements for procedure here

    SELECT OpportunityBase.Name, OpportunityBase.Description, SystemUserBase.LastName,

    SystemUserBase.FirstName, OpportunityBase.CloseProbability, OpportunityBase.EstimatedValue,

    OpportunityExtensionBase.New_Margin, OpportunityExtensionBase.New_ConstructionStartDate,

    OpportunityExtensionBase.New_OpportunityReport, OpportunityExtensionBase.New_ConstructionTerm,

    OpportunityExtensionBase.New_RFP,

    DATEADD(MONTH,+1,(DATEADD(MONTH,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate))) - DAY(DATEADD(MONTH,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate))AS EndDate,

    Month1 =

    case

    when GetDate() between OpportunityExtensionBase.New_ConstructionStartDate and DAteadd(month,+1,(DateAdd(month,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate))) - day(DateAdd(month,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate)) then

    (case ISNULL(New_ConstructionTerm, 0)

    when 0 then 0 else

    ((ISNULL(New_Margin, 0)) / (case ISNULL(New_ConstructionTerm, 1) when 0 then 1 else ISNULL(New_ConstructionTerm, 1) end))

    end)

    else 0

    end,

    Month2 =

    case

    when dateadd(month,+1,GetDate()) between OpportunityExtensionBase.New_ConstructionStartDate and DAteadd(month,+1,(DateAdd(month,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate))) - day(DateAdd(month,OpportunityExtensionBase.New_ConstructionTerm, OpportunityExtensionBase.New_ConstructionStartDate)) then

    (case ISNULL(New_ConstructionTerm, 0)

    when 0 then 0 else

    ((ISNULL(New_Margin, 0)) / (case ISNULL(New_ConstructionTerm, 1) when 0 then 1 else ISNULL(New_ConstructionTerm, 1) end))

    end)

    else 0

    end,

    FROM

    OpportunityBase

    INNER JOIN OpportunityExtensionBase ON OpportunityBase.OpportunityId = OpportunityExtensionBase.OpportunityId

    INNER JOIN SystemUserBase ON OpportunityBase.OwningUser = SystemUserBase.SystemUserId

    END

    GO

    ________________________________________________________________

    As you can see the calculation for the above query is a simple division of (Margin / Term). Also creating the months out I need to go (24) by using the DATEADD function. I need to achive pretty much the same layout except now instead of equally diving the margin by the term (in months) I need to have the calculations vary based off of the bell curve calculation provided. See below:

    So - for example, if you look at the chart above. Say a project term is 9 months, the monthly calculations have to be as the chart above states... I hope this clears up some of the mess 🙂