staff_no,leave_code,start_date,end_date,total_no_of_days,这几个字段内容相同(查询匹配),不同的是rees,from_time_to_time,update_date
要删除查询匹配重复的数据(staff_no,leave_code,start_date,end_date,total_no_of_days这几个字段内容相同) ,(删除重复数据中from_time和to_time为空数据)
删除SQL如何写,谢谢各位 ,字段信息见附件
要删除查询匹配重复的数据(staff_no,leave_code,start_date,end_date,total_no_of_days这几个字段内容相同) ,(删除重复数据中from_time和to_time为空数据)
删除SQL如何写,谢谢各位 ,字段信息见附件
解决方案 »
- 希望大家看看这条语句如何优化!
- MYSQL在触发器中怎样实现‘根据条件来确定是否插入一条记录’?急!
- mysql4.0.16中的sql-bin-update-same参数是什么意思呢?
- 我在MySQL中设定了属性为非空,但是付值却仍然可以为空,为什么?
- 求助sql
- 如何附加数据库文件夹
- mysql怎么建立数据源用jdbc.odbc
- 奇怪的MYSQL问题?
- 晕,难不成MYSQL全文检索不支持中文吗?
- mysql 如何将存储过程的结果存入临时表、如何接查询结果插入实体表
- 请问怎么实现动态行转列?(具体哪些列取自另一表)【附全部建表SQL】如果数据库设计的不合理还望大神们多多指教
- 请教关于MySQL新增数据,不存在则新增,存在则更新的问题
FROM 表 t ,
( SELECT staff_no ,
leave_code ,
start_date ,
end_date ,
total_no_of_days ,
COUNT(1) AS num
FROM 表
GROUP BY staff_no ,
leave_code ,
start_date ,
end_date ,
total_no_of_days
HAVING COUNT(1) > 1
) t1
WHERE t.staff_no = t1.staff_no
AND t.leave_code = t1.leave_code
AND t.start_date = t1.start_date
AND t.end_date = t1.end_date
AND t.total_no_of_days = t1.total_no_of_days
AND from_time IS NULL
AND to_time IS NULL
where exists (select 1 from (select staff_no,leave_code,start_date,end_date,total_no_of_days
from 表
group by staff_no,leave_code,start_date,end_date,total_no_of_days
having count(1) > 1) b
where a.staff_no = b.staff_no and a.leave_code = b.leave_code
and a.start_date = b.start_date and a.end_date = b.end_date
and a.total_no_of_days = b.total_no_of_days)
and not exists (select 1 from (select max(UPDATE_DATE) AS UPDATE_DATE
from 表
group by staff_no,leave_code,start_date,end_date,total_no_of_days
having count(1) > 1) c
where a.update_date = c.update_date)至于其它set null,就是删除后,一句简单sql语句的事了。
sql语句未测试,先select后,检查正确再删。