Forum

tablodan tekrarlanm...
 
Bildirimler
Hepsini Temizle

tablodan tekrarlanmış verileri silme

6 Yazılar
3 Üyeler
0 Reactions
811 Görüntüleme
 
(@nerimancekuc)
Gönderiler: 4
Active Member
Konu başlatıcı
 

selam. foreign key leri  eşit olan iki veriden ID si büyük olanları silmek istiyorum. çok sayıda olduğu için (çift yaratılmış form). delete  komutunu nasıl doğru kullanabilirim. yardımcı olabilenlere şimdiden teşekkürler.

 

 
Gönderildi : 20/07/2015 21:05

(@servetcayir)
Gönderiler: 26
Eminent Member
 

Merhaba

1.Select ile Group by ve having count(*)>1 kullanarak cift olan foregingKey (ID) leri bulursunuz.

2.Select ile bu foregingKey (ID) lere ait min(KeyID) yi belirlersiniz.

3.Delete ile bu KeyID ye ait kayıtları silersiniz. 

 

Ornek sorgu aşagıdaki gibi olur.

delete  from [TestDb].[dbo].[myTable] 

where KeyId in (

select min(KeyId) from [TestDb].[dbo].[myTable] where Id in (SELECT  Id FROM [TestDb].[dbo].[myTable] group by ID having count(*)>1)

)

 
Gönderildi : 22/07/2015 13:46

 
(@nerimancekuc)
Gönderiler: 4
Active Member
Konu başlatıcı
 

teşekkür ederim. deneyeceğim..

 
Gönderildi : 22/07/2015 20:15

 
(@nerimancekuc)
Gönderiler: 4
Active Member
Konu başlatıcı
 

maalesef çalışmadı..

 select olarak çalıştırdım önce;

sadece 15  satır geldi. onlarda zaten silinmiş olanlar.. 

 
Gönderildi : 24/07/2015 14:41

(@SemihYERLiKAYA)
Gönderiler: 11
Active Member
 

Merhaba,

Kullanmış olduğunuz sorguyu ekleyebilirmisiniz ?

 
Gönderildi : 25/07/2015 19:07

 
(@nerimancekuc)
Gönderiler: 4
Active Member
Konu başlatıcı
 
select * from [ups].[dbo].[PORFLOW_SERVICEFORMS]  where CUSTOMERNAMEO ='YKB' AND SERVICESTATUS = 'Açık'  and ID in (select min(ID) from [UPS] .[DBO]
.[PORFLOW_SERVICEFORMS] group by UPSINFOID having count(*)>1)
 
Gönderildi : 29/07/2015 13:18

Paylaş: