我有这张考勤系统表,其中包含dateinout,checkin,checkout等列。用户上班时打卡,外出时打卡。系统两次从指纹扫描仪中检索数据。我想删除打孔时间在上午7点至上午11点之间的同一日期中有多个计数的行,也要删除在上午11点至下午6点之间具有相同日期结帐的行。
error -> {
CapthaShower.setImageDrawable(null);
Glide.with(getContext()).load(url_cap).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(CapthaShower);
showToast("error");
captcha = null;
captchaEdit.setText("");
}
答案 0 :(得分:0)
您可以逐步进行。 首先,找到时间范围内的插入计数:
SELECT COUNT(Logid), userid
FROM Checkinout
WHERE Intime BETWEEN '07:00:00.0000000' AND '11:00:00.0000000'
GROUP BY Logid
HAVING COUNT(Logid) > 1
在获得列表之后,您可以按属性分散您的需求
答案 1 :(得分:0)
您可以使用cte根据您的分组条件从att表中删除重复项。
;WITH CTE AS(
SELECT
row_number() over (partition by userid,dateinout, Intime, Outtime order by date) AS ROWNUMBER,
userid,
dateinout,
Intime,
Outtime
FROM
att
WHERE
Intime BETWEEN '07:00:00.0000000' AND '11:00:00.0000000'
AND userid = 37
)
DELETE FROM CTE WHERE ROWNUMBER>1