需要一些帮助来获取一些数据并且我陷入了连接沼泽。我在MS SQL Server上运行。
我在一个表(客户端组)中有一个客户端列表
clientgroup
Groupid | clientid
1 | 11
1 | 12
1 | 13
1 | 14
1 | 15
如果clientid有一些客户活动,我还有另一张桌子
clientcontactlog
Logid | clientid
1 | 11
2 | 14
3 | 15
4 | 11
5 | 11
6 | 11
然后我有另一个表格,其中包含有关clientactivity的信息
contactlog
Logid | logtype | logdate | logtext
1 | 1 | ’2016-05-16’ | ’Toys’
2 | 1 | ’2016-05-16’ | ’Toys’
3 | 1 | ’2016-05-16’ | ’Toys’
4 | 2 | ’2016-05-17’ | ’Lunch’
5 | 2 | ’2016-05-18’ | ’Dinner on Mars’
6 | 1 ! ’2016-05-19’ | ’Dinner on Mars’
我现在想做一个关于这个的mothly统计(在contactlog中的logtypes总结)并包括我在我的客户端列表中具有id的所有客户端。因此输出还显示没有记录clientcontactlog的客户端。这是我需要帮助的..我得到了我们输入的所有数据,但我还需要在没有记录的客户端上显示0。
输出应为
Clientname | sum(logtype1)
Client11 | 2
Client12 | 0
Client13 | 0
Client14 | 1
Client15 | 1
感谢您提供意见和帮助
答案 0 :(得分:0)
很确定你的意思是COUNT(LogType),而不是SUM(LogType),因为总结一个日期没有任何意义。无论如何,这可以做你想要的。
SELECT ClientName, IsNull(ct, 0) as LogCount
FROM clientgroup cg
INNER JOIN Clients c
ON cg.clientid = c.clientid
LEFT JOIN (
SELECT LogID,
Count(*) as ct
FROM ClientContactLog
GROUP BY ClientID
) as cl
注意:
答案 1 :(得分:0)
假设clientname
列中有一个select t2.clientname, coalesce(count(distinct t4.logtype), 0)
from clientgroup t1
join client t2
on t1.clientid = t2.id
left join
clientcontactlog t3
on t1.clientid = t3.clientid
left join
contactlog t4
on t3.Logid = t4.Logid
where t1.Groupid = 1
表,您可以这样做:
.fixed
{
width: 100%;
height: 100px;
background-color:red;
display:flex;
}
h1
{
height: 100px;
display:flex;
align-items:center;
margin:0 10px;
color:white;
}
nav
{
position:relative;
height:100%;
width: auto;
display:flex;
align-items:center;
justify-content:space-around;
background-color:green;
top:0;
right:0;
> ul
{
height:auto;
padding: 0px 40px;
> li
{
font-size: 15px;
padding: 0 12px;
text-align:center;
line-height: inherit;
display:inline-block;
&:not(:last-child)
{
margin-right:0;
}
button
{
padding: 0;
&:hover
{
background-color: inherit;
border:none;
}
}
a
{
line-height: 50px;
}
}
}
}