我可以就这个查询寻求帮助吗?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'
我没有测试过,所以我不知道它是否准确。
- 1 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消