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

  • Home
  • SEARCH
  • 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 8323801
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 8, 20262026-06-08T23:50:00+00:00 2026-06-08T23:50:00+00:00

I have this table that I access throught linq-to-entities: Day Amount Type (1 or

  • 0

I have this table that I access throught linq-to-entities:

  • Day
  • Amount
  • Type (1 or 2)

I have many rows on the same day and of the same type and I need to summarize their amounts by month. That’s easy:

from r in rows
group r by new { r.Date.Year, r.Date.Month }
into g
select
    new
        {
            Date = new DateTime(g.Key.Year, g.Key.Month, 1),
            Hours = g.Sum(a => a.Amount)
        };

However, I have a special rule that I need to implement in the same LINQ, that I would like some help with:

If there is ANY type 2 on a given day, then THAT day should only sum of type 2. Otherwise it should summarize on type 1.

Notice that the distinction between type 1 and type 2 is per day and the sum is per month.

UPDATE
As I’m dealing with a LOT of data, I need to get it all in one database call, I cannot load it into memory and manage it there.

  • 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-08T23:50:03+00:00Added an answer on June 8, 2026 at 11:50 pm
    rows
        .GroupBy(
            r => new { r.Date.Year, r.Date.Month, r.Date.Day, r.Type },
            (r, rr) => new { r.Year, r.Month, r.Day, r.Type, Amount = rr.Sum(rrr => rrr.Amount) })
        .GroupBy(
            r => new { r.Year, r.Month, r.Day },
            (r, rr) => new { r.Year, r.Month, r.Day, Amount = rr.OrderByDescending(rrr => rrr.Type).Select(rrr => rrr.Amount).First() })
        .GroupBy(
            r => new { r.Year, r.Month },
            (r, rr) => new { r.Year, r.Month, Amount = rr.Sum(rrr => rrr.Amount) })
    

    Ratio behind this is very simple: the requirement “if there’s at least one type 2 record, sum only type 2 records” can be implemented by simply grouping records by type (within days, of course). Why does it work? Because we split all records into two groups, type 2 (which should be used if there is at least one type 2 record), and type 1 (which in fact means “all records when no type 2 present”). Second part (choosing sum) is even simpler: we just order groups (within day) by descending type (i.e. sum for type 2, sum for type 1) and take first one, which gives us type 2 if present and type 1 otherwise.

    Frankly, it’s a kind of “smart code” everybody hates, because nobody could understand from a glance how it works.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a table that someone update this table every day. I would like
I have this table: id feed_id ... Let's say that I have 500 rows
Greetings, fellow coders! I have this table that contains categories and subcategories (actually I
I have a table that looks like this: table name: uno str_id | title
I have a Pages table that stores all my view urls and this table
I have a table that looks like this: CREATE TABLE foobar ( id SERIAL
I have a table that's created like this: CREATE TABLE bin_test (id INTEGER PRIMARY
I have a LaTeX table that looks like this: \begin{table}[!ht] \centering \small \caption{ \bf{Caption}}
Hi there I have an SQL table that looks like this: CREATE TABLE IF
Let's say I have a MySQL table that is something like this: software table:

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.