2

予定を含むテーブルがあります。これらの予定には、さまざまなステータス (1 ~ 5 のバイト) と日付があります。日付の列は単に と呼ばれAppointDateます。ID のリストを渡し、ステータスに基づいて結果をグループ化し、予定の日付が過ぎているかどうかを調べます。

TheIDsパラメータとして渡される long のリストです。これは私がこれまでに持っているものです:

var TheCounterInDB = (from a in MyDC.Appointments
                      where TheIDs.Contains(a.ID)
                      group a by a.AppointStatus into TheGroups
                      select new { 
                             TheStatus = TheGroups.Key,
                             TheTotalCount = TheGroups.Count(),
                             TheLateCount = ?,
                             ThePendingCount = ?
                      }).ToList();

基本的に、TheLateCountステータスが 1 で日付が過ぎているすべての予定の数になり、ステータスが 1 で日付が過ぎていない数になりたいですThePendingCount。私の匿名型は、すべての異なるステータスの数を返すのに適しています (それがここにあり.Keyます) が、日付要件をグループ化に追加するのに最適な方法を考えています。

ご提案いただきありがとうございます。

4

1 に答える 1

4
var TheCounterInDB = (from a in MyDC.Appointments
                      where TheIDs.Contains(a.ID)
                      group a by a.AppointStatus into TheGroups
                      select new { 
                             TheStatus = TheGroups.Key,
                             TheTotalCount = TheGroups.Count(),
                             TheLateCount = TheGroups.Count(x => x.AppointStatus == 1 && x.AppointDate < DateTime.Today),
                             ThePendingCount = TheGroups.Count(x => x.AppointStatus == 1 && x.AppointDate >= DateTime.Today)
                      }).ToList();
于 2012-07-20T16:37:23.163 に答える