0

私は解決策を探しましたが、似たようなものはありません。私の問題は、データベースからデータを選択し、それをUserIDでグループ化し、ステータスIDでカウントしたいということです。

ユーザー

UserID
Name

予定

UserID
ClientID
Status
StartDate

ステータスはアクティブ=1、キャンセル= 2、完了=3にすることができます

これが結果の表示方法です。

結果表

前もって感謝します。

4

2 に答える 2

1

あなたの質問では、グループ化したいと言っています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 人のユーザーが同じ名前の場合は、これで処理されます)

于 2012-01-30T17:18:57.453 に答える