私は解決策を探しましたが、似たようなものはありません。私の問題は、データベースからデータを選択し、それをUserIDでグループ化し、ステータスIDでカウントしたいということです。
ユーザー
UserID
Name
予定
UserID
ClientID
Status
StartDate
ステータスはアクティブ=1、キャンセル= 2、完了=3にすることができます
これが結果の表示方法です。
前もって感謝します。
あなたの質問では、グループ化したいと言っていますUserId
が、出力ではName
. このクエリは両方にグループ化されます。ニーズに合わせて調整することもできます。
from u in tblUsers
join a in tblAppointments on u.UserID equals a.UserID
group a by new { u.UserID, u.Name } into g
select new
{
Name = g.Key.Name,
Active = g.Count (x => x.Status == 1),
Canceled = g.Count (x => x.Status == 2),
Done = g.Count (x => x.Status == 3)
}
(ただし、2 人のユーザーが同じ名前の場合は、これで処理されます)