if-then-else ve güncelleme

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
mudipasa
Üye
Mesajlar: 169
Kayıt: 13 Tem 2004 02:25
Konum: Batman

if-then-else ve güncelleme

Mesaj gönderen mudipasa »

S.A.
SQL de o kadar da iyi değilim. Firebird veritabanı kullanıyorum. Sorum şöyle;
Tabloda Cinsiyet,Yas,Durum değişkenleri var. Benim istediğim SQL in UPDATE gibi bir şekilde tek bir seferde şartı güncelleme yapmak daha açık söylemek gerekirse Cinsiyet Kız ise yaşı 0-13 arası ise durum çocuk, 14-30 arası ise durum genç, 30 dan büyük ise durum yaşlı, yalnız cinsiyet Erkek ise ve yaşı 0-10 arası ise durum çocuk, 11-35 arası ise durum genç, 36 dan büyük ise durum yaşlı olacak. şart içinde şartla güncelleme yapmak istiyorum. where yöntemini düşündüm ama bir türlü bağlayamadım. bu konuda yardımcı olacak fikirlerinizi ve kodlarınızı :) bekliyorum. Teşekkürler.

Kod: Tümünü seç

www.muratdişikırık.com.tr
zyildiz
Üye
Mesajlar: 115
Kayıt: 09 Mar 2004 01:22
Konum: Adapazarı

Re: if-then-else ve güncelleme

Mesaj gönderen zyildiz »

Eger bu işlemi bir kereligine yapacaksan:

sql kodunu tek tek oluşturup elle çalıştırabilirsin
update tablo adi
set değiştirilecek alan = cocuk veya neyse
where kriterler

eger delphi tarafından yapacaksan
guncelleyecegin tabloyu

TABLO_ADI.first
while not TABLO_ADI.eof do
begin
.........
TABLO_ADI.next;
end;

blogun içinde tabloyu baştan sona okutmak ve istediğin kriterlere göre gerekli update işlemlerini yaptırabilirsin

veritabanı tarafından yapmak istersen procedure yazman gerekecek
Medeniyet dediğin hayat almaz, hayat verir. Senin dedelerin ninelerin bunu gerçekleştirdi... Şemsettin YEŞİL
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: if-then-else ve güncelleme

Mesaj gönderen White Rose »

Aşağıdaki sql kodlarını query ile çalıştırman lazım.

query1.close;
query1.sql.text:='Update Tablo_Adi Set Durum=''Çocuk'' where Cinsiyeti=''Kız'' and Yas>=0 and Yas<=13';
query1:ExecSql;

query1.close;
query1.sql.text:='Update Tablo_Adi Set Durum='Genç'' where Cinsiyeti=''Kız'' and Yas>=14 and Yas<30';
query1:ExecSql;

query1.close;
query1.sql.text:='Update Tablo_Adi Set Durum=''Yaşlı'' where Cinsiyeti=''Kız'' and Yas>=30';
query1:ExecSql;

erkek için de aynı mantığı kullanabilirsin.
Cevapla