SQL DE CASE WHEN YAPAMADIM

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
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

KOLAY GELSİN HERKESE
YA BU SORUNUMU BİR TÜRLÜ HALLADEMEDİM
YARDIMLARINIZI BEKLİYORUM :=)


assoc_tavole_parts.PART_NUMBER BURDAN NUMARA ALACAK ÖRNEK 1060
assoc_tavole_parts.FL_ESA_SOS BURDA 0 İSE SORUN YOK 1 İSE
BURAYA
esauriti_sostituiti.PN_SOSTITUITO BAKACAK BURDA 1060 BULUNCA
esauriti_sostituiti.TP_SOST_SOSTITUENTE BUNA BAKACAK S İSE DEVAM EDECEK * İSE BURDA DURACAK S İSE
BURAYI ALIP
esauriti_sostituiti.PN_SOSTITUENTE YENİ NO ÖRNEK 1061 BUNU esauriti_sostituiti.PN_SOSTITUITO EKRAR TARAYACAK VE GENE S İSE DEVAM * İSE DURACAK BU NASIL YAPILABİLİR CASE WHEN İLE ???
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

CASE WHEN assoc_tavole_parts.FL_ESA_SOS =1 AND
((esauriti_sostituiti.PN_SOSTITUITO = assoc_tavole_parts.PART_NUMBER)
OR (esauriti_sostituiti.TP_SOST_SOSTITUENTE ='S')
AND esauriti_sostituiti.PN_SOSTITUENTE LIKE esauriti_sostituiti.PN_SOSTITUITO)
THEN esauriti_sostituiti.PN_SOSTITUENTE
ELSE assoc_tavole_parts.PART_NUMBER END AS YENIVEESKINO

BU ŞEKİLDE BİR DENEME YAPTIM AMA OLMADI :=(

ÇIKTI BU SEKİLDE KALDI

1 1 504080154 99473877 * DOGRU
14 8 99478325 99478326 * DOGRU
19 2 16609825 16609824 * DOGRU
20 12 16984331 16750331 S YANLIŞ DEVAM ETMESİ LAZIM
20 OLAN S Lİ İSE BİR DAHA DEVAM ETMESİ LAZIM BU S 1 KEREDE CIKABİLİR 2 KEREDE GELEBİLİR 10 DEFADA GELEBİLİR * BULANA KADAR DÖNGÜ DEVAM ETMESİ LAZIM NASIL YAPABİLİRİM ???
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen aslangeri »

lütfen forum kurallarına göre sorunuzu düzeltiniz.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

şimdi düzeltmek derken anlamadım
:=(

bu sekilde bir alanım var

CASE WHEN assoc_tavole_parts.FL_ESA_SOS ='1' AND
(esauriti_sostituiti.PN_SOSTITUITO = assoc_tavole_parts.PART_NUMBER)
OR (esauriti_sostituiti.TP_SOST_SOSTITUENTE ='S')
AND (esauriti_sostituiti.PN_SOSTITUITO = esauriti_sostituiti.PN_SOSTITUENTE)
THEN esauriti_sostituiti.PN_SOSTITUENTE
ELSE assoc_tavole_parts.PART_NUMBER END AS YENIVEESKINO

yapmak istediğimi bir daha anlatacagım
assoc_tavole_parts.PART_NUMBER de bu rakam yazıyor 16750331 bu numara değişmişmi değişmemişmi
assoc_tavole_parts.FL_ESA_SOS ='1' burda 0 varsa değişmemeiş 1 varsa değişmiş demek
esauriti_sostituiti.PN_SOSTITUITO burda eski numara alanı var 16750331 bunu burda arıyor varsa
esauriti_sostituiti.PN_SOSTITUENTE burdada yeni numara var ve varsa
esauriti_sostituiti.TP_SOST_SOSTITUENTE ='S' buraya bakıyor burda S ise tekrar değişmiş demek * ise bu son murada bir daha değişmemeiş demek
değişmişse esauriti_sostituiti.PN_SOSTITUENTE yeni numarayı tekrar esauriti_sostituiti.PN_SOSTITUITO arıyor ve varsa bu iş tekrarlanıp duruyor
aşagıdaki gibi bir ekran geliyor bu sayede

yeni nu. eski nu değişim varmı yokmu
4808624 16750331 S
16750331 16750331 S
16750331 16984331 S
16984331 16984335 S
16984335 16750335 *

teşekkürler
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

S S 99476877 504080154
S * 504080154 504330958
S S 16750331 V16750331
S S 16750331 16984331
S S 16984331 16984335
S * 16984335 16750335

mdb yada sql olarak atamadım 2 mb geçiyor 20 mb lik bir dosya özeti burda
tablo1 s
tablo2 s ve (*)
tablo3 eski numara
tablo4 yeni numara

özeti tablo1 s ise ekino yeni numara olmuş tablo 2 s ise tekrar değişmiş * ise enson nurama tablo4 de kalmış


kolay gelsin herkese
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

son gönderdigim dogru tablo içinde 6 alan var aslında bu 4 tabloda iş bitiyor diye 4 ünüde yazayım dedim :=)
çevirince cok büyük oluyor :=) mdb ye yazdım 3 örnek
TP_SOST_SOSTITUITO ( S ) ise değişmiş
TP_SOST_SOSTITUITO ( * ) ise PN_SOSTITUITO bunu görür digeri boş gelir


TP_SOST_SOSTITUENTE ( S ) ise tekrar değişmiş

TP_SOST_SOSTITUENTE ( * ) ise PN_SOSTITUENTE

PN_SOSTITUITO eski numara alanı TP_SOST_SOSTITUITO ( * ) ise bu numra geçerlidir yani

PN_SOSTITUENTE yeni numara alanı bu alanda bir numra varsa ve TP_SOST_SOSTITUENTE ( * ) ise bu son ve yeni numaradır TP_SOST_SOSTITUENTE ( s ) ise tekrar eski numra alanını kontrol edip bakıyor..

işte bunu anlatamadım..
örnek bir şey yaptım umaram anlatabilmişimdir..


99473877 ilk no 504330958 son no
99478326 ilk no 99478325 son no
16750331 ilk no 16750335 son no
1060 ilk no 1061 son no
Dosya ekleri
Veritabanı2.rar
(10.42 KiB) 104 kere indirildi
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

Kimse Yokmu :=))
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

doyanın orj halini mdb ye çevirdim
yardımlarınızı esirgemeyin lütfen çıldırdım :=))

http://www.hemenkap.com/butablo.rar
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen haznedarli »

bir kişide bir akıl versin yada yardım etsin yaws sitede bir tek ben varım gibi hissetmeye başladım :=))))))
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen aslangeri »

s.a.
Yukardaki mesajında yaptığın kontrol işlemlerini yapan bir stored procedure yapsan daha iyi olur gibime geldi.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: SQL DE CASE WHEN YAPAMADIM

Mesaj gönderen orhancc »

link çalışmıyor ve neden böyle bir tasarım yaptığınızı merak ettim doğrusu .
Cevapla