GROUP BY 语句。高手帮忙!

zhyoli 2006-04-18 02:30:53
SELECT T_USERS.USERNAME AS 医生姓名,T_OFFICE.OFFICE AS 科室,T_REGISTER_INFO.REGISTERID AS 挂号号,T_PATIENT_INFO.PATIENTNAME AS 病人姓名,
T_REGISTER_INFO.REGISTERFEE AS 挂号费,T_REGISTER_INFO.EXAMINEMONEY AS 诊金,T_OPERATOR.OPERATORNAME AS 操作员,T_REGISTER_INFO.OPERATEDATE
AS 操作时间,T_REGISTER_INFO.CANCELMARK AS 退费标识
FROM
T_OFFICE,T_PATIENT_INFO,T_USERS,T_REGISTER_INFO,T_OPERATOR
WHERE
T_USERS.OfficeID=T_OFFICE.OfficeID
AND T_REGISTER_INFO.DoctorID=T_USERS.UserID
AND T_REGISTER_INFO.DiagnoseID=T_PATIENT_INFO.DiagnoseID
AND T_REGISTER_INFO.OperatorID=T_OPERATOR.OperatorID
AND T_REGISTER_INFO.CANCELMARK=0
GROUP BY
T_REGISTER_INFO.OPERATEDATE
--------------------------------------
按照T_REGISTER_INFO.OPERATEDATE分组,这个是时间格式,有重复的值,要显示不同表里的个别字段,就是上面要显示的字段
要过滤掉重复的T_REGISTER_INFO.OPERATEDATE字段的值。SQL语句完整的应该怎么写。帮忙!
...全文
232 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
撸大湿 2006-04-18
  • 打赏
  • 举报
回复
ID=identity(int,1,1)

自增列--以整数单位1递增
zhyoli 2006-04-18
  • 打赏
  • 举报
回复
楼上的,号是什么
select *,ID=identity(int,1,1) into #j from
能解释一下吗?
yuweiwei 2006-04-18
  • 打赏
  • 举报
回复
select *,ID=identity(int,1,1) into #j from
(SELECT T_USERS.USERNAME AS 医生姓名,T_OFFICE.OFFICE AS 科室,T_REGISTER_INFO.REGISTERID AS 挂号号,T_PATIENT_INFO.PATIENTNAME AS 病人姓名,
T_REGISTER_INFO.REGISTERFEE AS 挂号费,T_REGISTER_INFO.EXAMINEMONEY AS 诊金,T_OPERATOR.OPERATORNAME AS 操作员,T_REGISTER_INFO.OPERATEDATE
AS 操作时间,T_REGISTER_INFO.CANCELMARK AS 退费标识
FROM
T_OFFICE,T_PATIENT_INFO,T_USERS,T_REGISTER_INFO,T_OPERATOR
WHERE
T_USERS.OfficeID=T_OFFICE.OfficeID
AND T_REGISTER_INFO.DoctorID=T_USERS.UserID
AND T_REGISTER_INFO.DiagnoseID=T_PATIENT_INFO.DiagnoseID
AND T_REGISTER_INFO.OperatorID=T_OPERATOR.OperatorID
AND T_REGISTER_INFO.CANCELMARK=0)

select 医生姓名,科室,挂号号,病人姓名,挂号费,诊金,操作员,操作时间,退费标识 from #j where ID in (select min(ID)ID from #j group by 操作时间)
itblog 2006-04-18
  • 打赏
  • 举报
回复

SELECT max(T_USERS.USERNAME) AS 医生姓名,max(T_OFFICE.OFFICE) AS 科室,max(T_REGISTER_INFO.REGISTERID) AS 挂号号,max(T_PATIENT_INFO.PATIENTNAME) AS 病人姓名,
max(T_REGISTER_INFO.REGISTERFEE) AS 挂号费,max(T_REGISTER_INFO.EXAMINEMONEY) AS 诊金,max(T_OPERATOR.OPERATORNAME) AS 操作员,T_REGISTER_INFO.OPERATEDATE
AS 操作时间,max(T_REGISTER_INFO.CANCELMARK) AS 退费标识
FROM
T_OFFICE,T_PATIENT_INFO,T_USERS,T_REGISTER_INFO,T_OPERATOR
WHERE
T_USERS.OfficeID=T_OFFICE.OfficeID
AND T_REGISTER_INFO.DoctorID=T_USERS.UserID
AND T_REGISTER_INFO.DiagnoseID=T_PATIENT_INFO.DiagnoseID
AND T_REGISTER_INFO.OperatorID=T_OPERATOR.OperatorID
AND T_REGISTER_INFO.CANCELMARK=0
GROUP BY
T_REGISTER_INFO.OPERATEDATE
zhyoli 2006-04-18
  • 打赏
  • 举报
回复
其他列不考虑,只考虑T_REGISTER_INFO.OPERATEDATE列的重复问题。只取一条
zhyoli 2006-04-18
  • 打赏
  • 举报
回复
T_REGISTER_INFO.OPERATEDATE 这个字段有重复的记录,其他的不管,只统计有相同的话取一条记录。
LuckArcher 2006-04-18
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4665/4665143.xml?temp=.6457178
类似与我的帖子,也许可以作为参考!!!
冷箫轻笛 2006-04-18
  • 打赏
  • 举报
回复
对于重复的T_REGISTER_INFO.OPERATEDATE,其他的字段内容怎么取阿?
其他的字段不会都是重复的吧?
zhyoli 2006-04-18
  • 打赏
  • 举报
回复
上面的语句有问题。执行不成功。

34,594

社区成员

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

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