Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 731065
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T06:59:01+00:00 2026-05-14T06:59:01+00:00

I have a sql server table: CREATE TABLE [Workflow].[MilestoneDate]( [MilestoneDateId] [int] IDENTITY(1,1) NOT NULL,

  • 0

I have a sql server table:

CREATE TABLE [Workflow].[MilestoneDate](
 [MilestoneDateId] [int] IDENTITY(1,1) NOT NULL,
 [SpecifiedDate] [datetime] NULL,
 [RelativeDays] [int] NULL,
 [RelativeMilestoneDateId] [int] NULL,
 CONSTRAINT [PK_MilestoneDate] PRIMARY KEY CLUSTERED 
(
 [MilestoneDateId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [Workflow].[MilestoneDate]  WITH CHECK ADD  CONSTRAINT [FK_MilestoneDate_MilestoneDate] FOREIGN KEY([RelativeMilestoneDateId])
REFERENCES [Workflow].[MilestoneDate] ([MilestoneDateId])
GO
ALTER TABLE [Workflow].[MilestoneDate] CHECK CONSTRAINT [FK_MilestoneDate_MilestoneDate]

and it has data that might look like:

Id     Date                          RelDays RelId
49     2010-03-04 00:00:00.000       NULL    NULL
746    NULL                          6       46
747    NULL                          20      746
46     2010-02-18 00:00:00.000       NULL    NULL
48     2010-04-04 00:00:00.000       NULL    NULL
47     2010-05-04 00:00:00.000       NULL    NULL
748    NULL                          14      48

What I need to be able to do is to get the calculated date for each row which is either the Date if there is one, or the Date of the “parent” item (using the RelId) plus the RelDays (which can be recursive).

So for example the calculated date for Id 747 is 20 days + 6 days + 2010-02-18 and therefore 2010-03-16.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T06:59:01+00:00Added an answer on May 14, 2026 at 6:59 am

    try this (uses a CTE which is only available on SQL Server 2005 and up):

    DECLARE @YourTable table (Id int, Date datetime, RelDays int, RelId int)
    INSERT @YourTable VALUES (49 ,'2010-03-04 00:00:00.000',NULL ,NULL)
    INSERT @YourTable VALUES (746, NULL                    ,6    ,46)
    INSERT @YourTable VALUES (747, NULL                    ,20   ,746)
    INSERT @YourTable VALUES (46 ,'2010-02-18 00:00:00.000',NULL ,NULL)
    INSERT @YourTable VALUES (48 ,'2010-04-04 00:00:00.000',NULL ,NULL)
    INSERT @YourTable VALUES (47 ,'2010-05-04 00:00:00.000',NULL ,NULL)
    INSERT @YourTable VALUES (748, NULL                    ,14   ,48)
    
    ;WITH R AS
    (
        SELECT id,Date,RelDays,RelId  --get all parents
        FROM @YourTable
        WHERE RelId IS NULL
        UNION ALL    --recursive go through all children, adding the days on
        SELECT
            y.id,r.Date+y.RelDays,y.RelDays,y.RelId
            FROM @YourTable y
                INNER JOIN R ON y.RelId=r.Id
    )
    select * from R
    

    OUTPUT:

    id          Date                    RelDays     RelId
    ----------- ----------------------- ----------- -----------
    49          2010-03-04 00:00:00.000 NULL        NULL
    46          2010-02-18 00:00:00.000 NULL        NULL
    48          2010-04-04 00:00:00.000 NULL        NULL
    47          2010-05-04 00:00:00.000 NULL        NULL
    748         2010-04-18 00:00:00.000 14          48
    746         2010-02-24 00:00:00.000 6           46
    747         2010-03-16 00:00:00.000 20          746
    
    (7 row(s) affected)
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 370k
  • Answers 370k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer StackOverflowException usually means you've ended up in an infinite recursive… May 14, 2026 at 6:39 pm
  • Editorial Team
    Editorial Team added an answer Reading a UTF-8 file is fairly simple in Java: Reader… May 14, 2026 at 6:39 pm
  • Editorial Team
    Editorial Team added an answer You could define a Dictionary<string, EnumFactorType> as a "mapping" and… May 14, 2026 at 6:39 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.