为了账号安全,请及时绑定邮箱和手机立即绑定

从 2 个表中删除查询中的重复结果 | SQL 服务器 2012

从 2 个表中删除查询中的重复结果 | SQL 服务器 2012

PHP
互换的青春 2021-10-22 14:24:14
我可以就这个查询寻求帮助吗?physicianmasterfile.idno并CHECKINOUT.userid具有相同的值来比较数据。问题是查询有重复的结果。SELECT DISTINCT CHECKINOUT.CHECKTIME,physicianmasterfile.idno,physicianmasterfile.lastname,physicianmasterfile.firstname,physicianmasterfile.middlename,physicianmasterfile.fingerscanno,CONVERT(DATE, CHECKINOUT.CHECKTIME) AS Date,CONVERT(TIME(0),CHECKINOUT.CHECKTIME) AS TimeFROM physicianmasterfile,CHECKINOUT WHERE  CHECKINOUT.userid=physicianmasterfile.fingerscanno ANDCONVERT(DATE, CHECKINOUT.CHECKTIME) = CONVERT(DATE, SYSDATETIME()) ANDYEAR(CHECKINOUT.CHECKTIME) = YEAR(SYSDATETIME()) ANDCHECKINOUT.CHECKTYPE='I'ORDER BY CHECKINOUT.CHECKTIME我知道这UNION可以解决这个问题,但我不确定如何处理这个问题,physicianmasterfile因为我需要在查询中包含多个列,而CHECKINOUT我只需要 1 列。这是上述查询的示例数据。不应有重复的结果。这是我到目前为止所得到的,但没有运气。SELECT distinct R.idno, R.lastname, R.firstname, R.middlename, R.fingerscanno,       LD.CHECKTIME, LD.CHECKTYPE,LD.USERIDFROM physicianmasterfile As RLEFT JOIN CHECKINOUT AS LD on LD.USERID = R.fingerscannoWHERE         CONVERT(DATE, LD.CHECKTIME) = CONVERT(DATE, SYSDATETIME()) AND       YEAR(LD.CHECKTIME) = YEAR(SYSDATETIME()) AND       LD.CHECKTYPE='I'ORDER BY R.idno desc
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我没有看到您的所有数据,但请尝试将您的 FROM 和 WHERE 子句更改为:


    FROM 

       physicianmasterfile LEFT JOIN CHECKINOUT ON

       physicianmasterfile.fingerscanno = CHECKINOUT.userid

    WHERE  

       CONVERT(DATE, CHECKINOUT.CHECKTIME) = CONVERT(DATE, SYSDATETIME()) AND

       YEAR(CHECKINOUT.CHECKTIME) = YEAR(SYSDATETIME()) AND

       CHECKINOUT.CHECKTYPE='I'

我没有测试过,所以我不知道它是否准确。


查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信