Merhaba arkadaşlar kolay gelsin. müşteriler isimli bir tablom var tabloda id ad soyad telefon tckimlik adres alanlarım var. dikkatsizlik sonucu aynı tckimlik numarasına ait hastalar iki kez girilmiş. yani id hariç her şey aynı. bu kayıtları bulunca kart birleştir deyip bir bu kayıtları tek id ile birleştirmek istiyorum. yalnız dikkat edilmesi gereken bir nokta daha var. bu id ler başka bir tabloda da kullanılıyor.
teşekkür ederim iyi forumlar dilerim.
aynı olan kayıtları birleştirmek
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim:
aynı olan kayıtları birleştirmek
Fethiye den herkese sevgiler ...
X))@:>
X))@:>
Re: aynı olan kayıtları birleştirmek
hastaların tutulduğu tabloyu order by TCKIMLIK ile sıralayın.
while not eof ile
baştan sonra tarama yapın.
tarama yaparken oncekikayitTCNO ve oncekikayitID diye iki değişken tutun
sonraki kayda gelip eğer bu kayıt eşit önceki kayıt ise
diğer tablolar işçin aşağıdakine benzer bir sql çalıştırın.
while not eof ile
baştan sonra tarama yapın.
tarama yaparken oncekikayitTCNO ve oncekikayitID diye iki değişken tutun
sonraki kayda gelip eğer bu kayıt eşit önceki kayıt ise
diğer tablolar işçin aşağıdakine benzer bir sql çalıştırın.
Kod: Tümünü seç
if TaramaYaptigimTablo.fieldByName('TCKIMLIKNO').AsString=OncekiKayitTCNO then
Begin
query.sql.add('Update detailtablom set hasta_ID_Alani=:PARAMETREM1 where hasta_TCNO_alani=:PARAMETREM2');
query.parambyname('PARAMETREM1').Asinteger:=OncekiKayitID;
query.ParamByName('PARAMETREM2').AsString:=OncekiKayitTCNO;
.....
şeklinde tüm etkilenen tablolar için buna bezer queryler oluşturun.
sonra
TaramaYaptigimTablo.Delete;// ile bu silin
End
else
Begin
oncekikayitTCNO :=TaramaYaptigimTablo.fieldByName('TCKIMLKNO').Asstring;
oncekikayitID:=TaramaYaptigimTablo.fieldByName('HASTAID').Asstring;
TaramaYaptigimTablo.Next;//eğer eşleşme yoksa son kaydı güncelle ve sonraki kayda geç
End;