2011-02-08 41 views
0

嗨誰能建議如何將下面的SQL腳本更改爲linq?將sql更改爲linq

SELECT *, CASE WHEN datepart(day, DateIssue)<27 THEN datepart(month,DateIssue) ELSE datepart(month,DateIssue) % 12 + 1 END as group_name FROM Payments;

感謝

+0

您好,我實際上是指這個線程[鏈接](http://stackoverflow.com/questions/4922231/grouping-data-by-date-ranges)其中Ovidiu Pacurar發佈的SQL腳本,而不是LINQ。我已經嘗試過使用他的腳本,它的作品,所以我想知道任何其他人有任何想法改變到LINQ。謝謝 – VeecoTech 2011-02-08 02:03:53

+1

一旦你學會了如何使用它,你將會很享受LINQ。我強烈建議你坐下來用一個很好的教程(甚至是[MSDN](http://msdn.microsoft.com/en-us/library/bb308959.aspx)),並真正學習LINQ是如何工作的。要求別人逐一轉換表達方式不是一種掌握的途徑。 – 2011-02-08 02:07:02

回答

0

假設你有一個名爲Payments付款清單:

var query = from p in Payments 
      let dateIssue = (DateTime)p["DateIssue"] 
      let gName = (dateIssue.Day < 27) ? (dateIssue.Month) : (dateIssue.Month % 12 + 1) 
      select new { payment = p, groupName = gName }; 

Payments列表可以是任何東西,從可迭代

如果需要的話,你可以遍歷派生這樣:

foreach (var value in query) { 
    // value.payment the original item of Payments 
    // and value.groupName contains the other column 
} 

上帝保佑!