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 8705727
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T03:26:14+00:00 2026-06-13T03:26:14+00:00

I’m working with an ASP.NET MVC3 application and I have a database table for

  • 0

I’m working with an ASP.NET MVC3 application and I have a database table for bus journeys which lists them with start and end dates, and the days of operation. Here is a snippet below:

JourneyID   StartDate   EndDate     Monday  Tuesday Wednesday   etc
676         02 Jan 2012 01 Mar 2012 True    False   True        etc
696         02 Jan 2012 01 Mar 2012 False   False   True        etc
650         02 Jan 2012 25 Mar 2012 True    True    True        etc

So if the date of 2 Jan 2012 is a Monday, and Monday is set to true, then there is a journey on that day.

I’m trying to insert these into a new table row for each day that they run, so that would become:

JourneyID   Date
676         02 Jan 2012
676         04 Jan 2012
696         04 Jan 2012
650         02 Jan 2012
650         03 Jan 2012

The query to do this that is currently on the system is quite slow – it uses nested while loops in t-sql. There was also a version in C# but that was slightly slower – although it did use a similar process (It used the nested loop process, then saved items to be inserted in a generic list, then bulk inserted them)

The process in use currently loops through every journey, and within each journey, loops through every date between the start and end date to check what day it falls on and if that day is set to true. This can take a long time to perform.

Can anyone think of a more efficient way to perform this insert? It can currently loop through about 100,000 journeys an hour, but there could potentially be millions of journeys so it could take a long time.

  • 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-06-13T03:26:15+00:00Added an answer on June 13, 2026 at 3:26 am

    Effectively you’re unpivoting and then filtering.

    ;with cte as
    (
        select JourneyID, StartDate,EndDate,Days
        from yourtable s unpivot (active for days in (Monday, tuesday, wednesday, ...)) u
        where active = 1
    )
        select JourneyID, JourneyDate
        from (
            select 
                DATEADD(D, number, (Select MIN(startdate) from cte)) as JourneyDate
            from master..spt_values 
            where type='p' 
            and number < (select datediff(d,MIN(StartDate),max(enddate)) from cte)
        ) numbers
            cross join cte
        where 
            days = datename(weekday, JourneyDate) 
            and JourneyDatebetween StartDate and EndDate
        order by JourneyDate, JourneyID
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a string like this: La Torre Eiffel paragonata all&#8217;Everest What PHP function
I have an autohotkey script which looks up a word in a bilingual dictionary
I have an array which has BIG numbers and small numbers in it. I
I have a text area in my form which accepts all possible characters from
I have a view passing on information from a database: def serve_article(request, id): served_article
I have a reasonable size flat file database of text documents mostly saved in
I have a .ini file as follows: [playlist] numberofentries=2 File1=http://87.230.82.17:80 Title1=(#1 - 365/1400) Example
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I have just tried to save a simple *.rtf file with some websites and
I am trying to understand how to use SyndicationItem to display feed which is

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.