我有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 |
-----------------------------------------------------------------
答案 0 :(得分: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),
});
如果这与您正在寻找的答案完全不同,则需要为您的问题添加清晰度和细节。