2011-02-08 12 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はlinqの代わりにSQLスクリプトを投稿しました。私は彼のスクリプトを使用して試して、それは動作するので、他の誰かがlinqにそれを変更する任意のアイデアを持っているのだろうか。ありがとう – VeecoTech

+1

LINQの使い方を学ぶと、LINQを楽しめます。良いチュートリアル(あるいは[MSDN](http://msdn.microsoft.com/en-us/library/bb308959.aspx))で座って、LINQの仕組みを実際に学ぶことを強くお勧めします。他の人に式を1つずつ変換させることを求めることは、熟練への道ではありません。 –

答えて

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 
} 

神の祝福!

+0

私はちょうどhttp://stackoverflow.com/questions/4922231/grouping-data-by-date-rangesを見ました。私が書いたことはあなたが望むものではありません、あなたはgNameでpをグループ化するべきです... see(http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple1) – Trinidad

関連する問題