2017-06-20 150 views
0

我有以下SQL查詢,它提供給我月份,年份和計數。我怎樣才能在LINQ查詢語法中做同樣的事情?SQL查詢到LINQ查詢語法

SQL

SELECT 
    MONTH(ExpiryDate) MONTH, 
    YEAR(ExpiryDate) YEAR, 
    COUNT(*) COUNT 
FROM tblItems 
GROUP BY 
    YEAR(ExpiryDate), 
    MONTH(ExpiryDate) 

在此先感謝

[更新WORKING答案】

var query = from a in db.tblItems 
             group a by new 
             { 
              ((DateTime)a.ExpiryDate).Year, 
              ((DateTime)a.ExpiryDate).Month 
             } into bca 
             select new 
             { 
              MonthField = bca.Key.Month, 
              YearField = bca.Key.Year, 
              CountField = bca.Count(), 
             }; 
+0

LINQ太寬了。請提供更多的上下文 - LINQ to SQL,LINQ to Entities(EF,EF Core,哪個版本)等。 –

回答

1

請試試這個:

var info = from a in tblItems 
      group a by new 
      { 
       a.ExpiryDate.Year, 
       a.ExpiryDate.Month 
      } into bca 
      select new ConsolidatedData() 
      { 
       MonthField = bca.Key.ExpiryDate.Month, 
       YearField = bca.Key.ExpiryDate.Year, 
       CountField = bca.Count(), 
      }; 

您也可以嘗試LINQPad來發展你的技能在LINQ,你已經有了SQL邏輯。祝你有個愉快的日子

+0

感謝您的支持。我用我的答案更新了這個問題。也感謝LINQPad的鏈接不知道存在。 – SliderUK

0

我沒有完全理解你問什麼,但我會用在這樣的LINQ分組。

'from item in tblItems 
group item by year,month into group select group.firstordefault.month,group.firstordefault.year,group.count'