查找

好帅的一条鱼 2010-04-13 09:05:54
SELECT Date,Time,MachineId,COUNT(EmployeeName)
FROM AttendanceCollect
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId
ORDER BY COUNT(EmployeeName) DESC,Date,Time

我如何在不改变结果的前提下,将姓名也显示出来呢
...全文
130 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamloster 2010-04-13
  • 打赏
  • 举报
回复
楼主,根据AttendanceCollect ,用个内连接连接下原来的表AttendanceCollect

SELECT AttendanceCollect.EmployeeName,TempTable.* FROM
(SELECT Date,Time,MachineId,COUNT(EmployeeName)
FROM AttendanceCollect
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId
ORDER BY COUNT(EmployeeName) DESC,Date,Time) TempTable INNER JOIN AttendanceCollect
ON TempTable.MachineId=AttendanceCollect.MachineId
好帅的一条鱼 2010-04-13
  • 打赏
  • 举报
回复
,还不行
老黎 2010-04-13
  • 打赏
  • 举报
回复

SELECT
*
FROM
AttendanceCollect a
WHERE
Date >='2010-04-12'
and
(select 1 from AttendanceCollect where Date = a.Date and Time = a.Time and MachineId = a.MachineId)>1
GROUP BY Date,Time,MachineId
htl258_Tony 2010-04-13
  • 打赏
  • 举报
回复
SELECT Date,Time,MachineId,COUNT(EmployeeName)[COUNT],
EmployeeName=STUFF((select ','+EmployeeName from AttendanceCollect where MachineId=t.MachineId group by EmployeeName for XML path('')),1,1,'')
FROM AttendanceCollect t
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId
ORDER BY COUNT(EmployeeName) DESC,Date,Time


SQL2005的试试这样。看是不是你要的。
好帅的一条鱼 2010-04-13
  • 打赏
  • 举报
回复
查找 Date,Time,MachineId这三个字段相同的记录
老黎 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 good212164 的回复:]
如果group by里面加入姓名,最后的结果就变了,变为按姓名分类了,结果只要按日期时间机器来查相同的
[/Quote]
机器?
htl258_Tony 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 good212164 的回复:]
如果group by里面加入姓名,最后的结果就变了,变为按姓名分类了,结果只要按日期时间机器来查相同的
[/Quote]那你准备让SQL显示成怎么样?
好帅的一条鱼 2010-04-13
  • 打赏
  • 举报
回复
如果group by里面加入姓名,最后的结果就变了,变为按姓名分类了,结果只要按日期时间机器来查相同的
老黎 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 good212164 的回复:]
SELECT Date,Time,MachineId,COUNT(EmployeeName)
FROM AttendanceCollect
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId
ORDER BY COUNT(EmployeeName) DESC,Date,Time

我如何在不改变结果的前提下,将姓名也显示出来呢
[/Quote]
在一个group中两个name不一样的时候,name怎么拿?任取一个name?
好帅的一条鱼 2010-04-13
  • 打赏
  • 举报
回复
那个姓名就是统计的那个字段EmployeeName
htl258_Tony 2010-04-13
  • 打赏
  • 举报
回复
SELECT Date,Time,MachineId,EmployeeName,COUNT(EmployeeName)
FROM AttendanceCollect
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId,EmployeeName
ORDER BY COUNT(EmployeeName) DESC,Date,Time
htl258_Tony 2010-04-13
  • 打赏
  • 举报
回复
SELECT Date,Time,MachineId,Name,COUNT(EmployeeName)
FROM AttendanceCollect
WHERE Date >='2010-04-12'
GROUP BY Date,Time,MachineId,Name
ORDER BY COUNT(EmployeeName) DESC,Date,Time
类似这样的

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧