SQL-запрос к LinqToSql - PullRequest
0 голосов
/ 11 мая 2019

У меня есть SQL-запрос, который я хочу перевести на Linq-to-SQL:

enter image description here

Теперь вот начало Linq-to-SQL код, но я застрял на том, как сгруппировать поля и получить SUM:

private void GetDatas()
{
        DateTime d = DateTime.Now;

        using (DataClasses1DataContext dc = new DataClasses1DataContext())
        {
            var query = from ent in dc.STK_ABC_ENT
                        join det in dc.STK_ABC_DET on ent.ENT_ID equals det.ENT_ID
                        join art in dc.FICHES_ARTICLES on ent.ART_CODE equals art.ART_CODE
                        where !ent.ENT_NUM_PAL.Contains("FDR_")
                              && ent.ENT_OUTDATE == null
                              && ent.ENT_PICKING == null 
                              && ent.ENT_DATE_ENT != d
                        // How to group here ?
                        // How to get SUM ??
        }
}

1 Ответ

0 голосов
/ 11 мая 2019

Вы можете использовать group x by ColumnName into z для группировки столбцов.

Если вы хотите сгруппировать несколько столбцов, вы можете использовать group x by new { x.Column1, x.Column2 } into z.

Когда вы хотите сгруппировать несколько столбцов в несколько таблицВы можете использовать group new { x, y } by new { x.Column, y.Column } into z.

С Sum, просто вызовите его с помощью выражения lamda.

Пример:

var query = from ent in dc.STK_ABC_ENT
            join det in dc.STK_ABC_DET on ent.ENT_ID equals det.ENT_ID
            join art in dc.FICHES_ARTICLES on ent.ART_CODE equals art.ART_CODE
            where !ent.ENT_NUM_PAL.Contains("FDR_") && ent.ENT_OUTDATE == null
                  && ent.ENT_PICKING == null && ent.ENT_DATE_ENT != d
            group new { art, ent } by new {
                art.ART_CODE,
                ...,
                ent.ENT_DATE_ENT,
                ...
            } into grouped
            select new {
                ArtCode = grouped.Key.ART_CODE,
                SumPdsNet = grouped.Sum(x => x.DET_PNET),
                ...
            }

Я надеюсь, что это может работать длявы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...