Member 10583196 Ответов: 1

LINQ-группировка по месяцам, годам и возврат суммы


Привет,

Я новичок в Linq, традиционно из SQL-фона. Я пытаюсь адаптироваться к Linq, но синтаксис кажется сложным, и я не знаю, есть ли в этом какая-то польза.

В любом случае...

Как бы я написал ниже в LInq?

Спасибо за вашу помощь

Что я уже пробовал:

У меня есть таблица с итогом и датой-с помощью SQL я бы использовал,

выбрать год(производительность) как год, месяц(в мин.) в мес, сумма(TotalCharge) как tCharge
от MediaSale
группы по годам(производительность), месяц(производительность)

который возвращает следующий результат:

which returns the below result:

2017	6	472.2500
2017	7	2115.7700

Graeme_Grant

В вашем вопросе недостаточно того, с чем можно работать.

Это один табличный запрос или задействовано несколько таблиц? У вас есть фрагмент выборочных данных для запроса?

Нажмите на кнопку "улучшить вопрос", чтобы обновить свой вопрос. Если вы не уверены, как это вам покажется: https://www.codeproject.com/Articles/64628/Code-Project-Quick-Answers-FAQ#improve

Member 10583196

Извиняюсь, я думал, что SQL-запрос будет достаточной информацией.

Это один табличный запрос, как определено "From MediaSale"

В данных есть поле даты - " DeliveryDate"

И поле под названием "TotalCharge", которое я хочу суммировать по месяцам/годам.

Определение таблицы приведено ниже:

CREATE TABLE [dbo].[MediaSale] (
    [MediaSaleID]         INT             IDENTITY (1, 1) NOT NULL,
    [DeliveryDate]        DATETIME        NOT NULL,
    [MediaSaleCustomerID] INT             NOT NULL,
    [InternalOrderNumber]  NVARCHAR (MAX)  NULL,
    [CustomerOrderNumber] NVARCHAR (MAX)  NULL,
    [RecordCount]         INT             NOT NULL,
    [FileCount]           INT             NOT NULL,
    [SelectionDetail]     NVARCHAR (MAX)  NULL,
    [ProcessingCharge]    DECIMAL (19, 4) NULL,
    [DeliveryCharge]      DECIMAL (19, 4) NULL,
    [TotalCharge]         DECIMAL (19, 4) NULL,
    CONSTRAINT [PK_MediaSales] PRIMARY KEY CLUSTERED ([MediaSaleID] ASC),
    CONSTRAINT [FK_MediaSales_MSC] FOREIGN KEY ([MediaSaleCustomerID]) REFERENCES [dbo].[MediaSaleCustomer] ([MediaSaleCustomerID])
);

Graeme_Grant

Нажмите на кнопку "улучшить вопрос", чтобы обновить свой вопрос. Если вы не уверены, как это вам покажется: https://www.codeproject.com/Articles/64628/Code-Project-Quick-Answers-FAQ#improve

1 Ответов

Рейтинг:
11

Karthik_Mahalingam

пробовать

List<Entity> lst = new List<Entity>();
 var data = lst.Select(k => new { k.Deliverydate.Year, k.Deliverydate.Month, k.TotalCharge }).GroupBy(x => new { x.Year, x.Month }, (key, group) => new
{
    yr = key.Year,
    mnth = key.Month,
    tCharge = group.Sum(k => k.TotalCharge)
}).ToList();


Maciej Los

5ед!

Karthik_Mahalingam

Спасибо Мацей