XOÁ BỎ CÁC DÒNG TRÙNG
Do import hoặc lỗi nào đó, dẫn đến có hiện tượng 1 đối tượng được mở làm nhiều dòng danh mục.
Yêu cầu
Hướng dẫn
// Tạo bảng tạm cte gộp yếu tố trùng, đánh số stt
WITH cte AS (
SELECT ma,ten,vattu,identitykey,
ROW_NUMBER() OVER (PARTITION BY ma,ten ORDER BY identitykey) row_num
FROM vattu
Where vattu<>0 and ma<>''
)
// select bảng cte để kiểm tra
--select * from cte
// tạo câu lệnh select kiểm tra
--select T1.*, T2.vattu as vattuGoc from (select * from cte where row_num>1) T1 inner join (select * from cte where row_num=1)T2 on T1.ma=T2.ma and T1.ten=T2.ten
// tạo câu lệnh update dồn dữ liệu
update T1 set T1.vattu= T2.vattuGoc
from
(select * from dulieuketoan where vattu<>0) T1
inner join
(
select b1.*, b2.vattu as vattuGoc
from
(select * from cte where row_num>1) b1
inner join
(select * from cte where row_num=1)b2
on b1.ma=b2.ma and b1.ten=b2.ten
)T2
on T1.vattu = T2.vattu
// xoá các dòng có row_num> 1
delete cte where row_num>1Last updated