Arkadaşlar, sözgelimi 3 sütun olsun bir tabloda. Şöyle ki. ID, ToplamBorç, YeniBorç
Yani ToplamBorç, önceki satırdaki ToplamBorç ve şimdiki satırdaki YeniBorç toplamıdır.
Şimdi, diyelim ki, 10 kayıt var ve ben 5. kayıtta değişiklik yaptım. Haliyle, 6,7,8,9,10 kayıtlarındaki ToplamBorç değerleri değişecektir.
İşte bir döngü kullanmadan, bu değişiklikleri hesaplayarak güncelleyen SQL cümlesi ne olabilir?
Biraz araştırdım, UPDATE komutunun gelişmiş kullanılma durumu da varmış. Ama uyarlayamadım. Buraya kopyalayayım, belki size fikir verir.
Teşekkürler...
------------------------- UPDATE supplier SET supplier_name = ( SELECT customer.name FROM customers WHERE customers.customer_id = supplier.supplier_id) WHERE EXISTS ( SELECT customer.name FROM customers WHERE customers.customer_id = supplier.supplier_id); --------------------------
Arkadaşm nasıl insert yapıyorsun bu tabloya.. Açıkcası ben nasıl bir veri saklama mantığın oldugunu pek anlayamadım. Mesela eski borçları tutman gerekiyor mu? Evetse yeniborc alanına neden ihtiyacın var, fazla gibi. Cunku zaten borcları sıraladıgında aralarındaki fark borcun ne oldugunu gosterecekir. Yani asıl database yapını bi kontrol edip değiştirmeye bak bence..
Ya arkadaşlar, ben sadece örnek olsun diye basitleştirerek verdim. Oysa gerçekte Devir, Zimmet, İade, Tahsil gibi alanlar sözkonusu. Mesela Devir, adamın o anki borcu; Zimmet ise, yeni aldığı ürünün ücreti. Böylelikle sonraki kayıttaki Devir, bu ikisinin toplamı olacaktır.
ID, ToplamBorç, YeniBorç
Yani ToplamBorç, önceki satırdaki ToplamBorç ve şimdiki satırdaki YeniBorç toplamıdır.
Şimdi, diyelim ki, 10 kayıt var ve ben 5. kayıtta değişiklik yaptım. Haliyle, 6,7,8,9,10 kayıtlarındaki ToplamBorç değerleri değişecektir.
İşte bir döngü kullanmadan, bu değişiklikleri hesaplayarak güncelleyen SQL cümlesi ne olabilir?
Biraz araştırdım, UPDATE komutunun gelişmiş kullanılma durumu da varmış. Ama uyarlayamadım. Buraya kopyalayayım, belki size fikir verir.
Teşekkürler...
-------------------------
UPDATE supplier
SET supplier_name = ( SELECT customer.name
FROM customers
WHERE customers.customer_id = supplier.supplier_id)
WHERE EXISTS
( SELECT customer.name
FROM customers
WHERE customers.customer_id = supplier.supplier_id);
--------------------------