select ComputerName,(
SELECT
',' + LoginUser
FROM
UserateTotal sub
WHERE
datediff(n,ScrStartTime,SignTime) >180
and
ComputerName = UserateTotal.ComputerName
group by LoginUser
FOR XML PATH('')
),min(ScrStartTime),max(SignTime),sum( datediff(n,ScrStartTime,SignTime)) from UserateTotal where datediff(n,ScrStartTime,SignTime) >180 group by ComputerName
我语句的意思是按计算机名(ComputerName)分组,筛选出时间大于180的总和(sum( datediff(n,ScrStartTime,SignTime)),并列出最早时间(min(ScrStartTime))和最晚时间(max(SignTime)),因为用户名可能也不同,需要把用户名叠加。
于是要使用下面求出用户名:
SELECT
',' + LoginUser
FROM
UserateTotal sub
WHERE
datediff(n,ScrStartTime,SignTime) >180
and
ComputerName = UserateTotal.ComputerName
group by LoginUser
代码至此没有什么问题,但是感觉两个WHERE太重复,我应该怎么写成一个呢?谢谢
------解决方案--------------------
两个where的作用不同的,不能算是“重复”