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语句完整的应该怎么写。帮忙!

解决方案 »

  1.   

    对于重复的T_REGISTER_INFO.OPERATEDATE,其他的字段内容怎么取阿?
    其他的字段不会都是重复的吧?
      

  2.   

    http://community.csdn.net/Expert/topic/4665/4665143.xml?temp=.6457178
    类似与我的帖子,也许可以作为参考!!!
      

  3.   

    T_REGISTER_INFO.OPERATEDATE 这个字段有重复的记录,其他的不管,只统计有相同的话取一条记录。
      

  4.   

    其他列不考虑,只考虑T_REGISTER_INFO.OPERATEDATE列的重复问题。只取一条
      

  5.   


    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
      

  6.   

    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 操作时间) 
      

  7.   

    楼上的,号是什么
     select *,ID=identity(int,1,1) into #j from 
    能解释一下吗?
      

  8.   

    ID=identity(int,1,1) 自增列--以整数单位1递增