-1

我有 4 张桌子:

Foreign Key----FK
Primary Key----PK

ticket(id,FK_ticketopenby,FK_closeby,FK_createby,FK_tickettype)
ticketcategoies(PK_ID,name,ticketid)
user(name,PK_id) 
usertype(PK_id,designation,FK_userid)

用户 ID 是外键 (FK),如 FK_closeby,FK_createby,FK_tickettype

用户是管理员或客户工单是后续或用户

所需的 linq 查询结果

-----------------------------------------------------------------
| Usertype | TicketType | Totalopen | TotalClose | TotalCreated |
-----------------------------------------------------------------
|    admin |   FollowUP |       324 |       2323 |          232 |
-----------------------------------------------------------------
4

1 回答 1

0

您的问题有点薄,但这是我认为您要问的答案。

我假设您使用的是像 Linq-to-SQL 或 EF 这样的 ORM,并且每个表都有一个实体。

目前尚不清楚票证类型在您的模型中是如何表示的,因此我没有加入该实体。

context.Tickets.Join(
        context.UserTypes,
        t => t.TicketOpenBy, 
        ut => ut.UserId,
        (t, ut) => new
            {
                Usertype = ut.Designation,
                TicketType = t.TicketType,
                Open = (t.TicketOpenBy ?? 0) > 0 ? 1 : 0,
                Closed = (t.CloseBy ?? 0) > 0 ? 1 : 0,
                Created = (t.CreateBy ?? 0) > 0 ? 1 : 0
            })
    .GroupBy(
        t => new { t.Usertype, t.TicketType },
        t => new
            {
                t.Usertype,
                t.TicketType,
                TotalOpen = t.Sum(t => t.Open),
                TotalClosed = t.Sum(t => t.Closed),
                TotalCreated = t.Sum(t => t.Created),
            });

如果这与您正在寻找的答案不同,您将需要为您的问题添加清晰度和细节。

于 2012-08-07T08:47:53.127 回答