Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

IF EXITS KULLANIMI

Konu, 'SQL' kısmında demir12 tarafından paylaşıldı.

  1. demir12

    demir12 Daimi Üye

    Kayıt:
    10 Eylül 2008
    Mesajlar:
    808
    Beğenilen Mesajlar:
    0
    Arkadaşlar IF EXITS sonuclarını tek tabloda göstermek istiyorum ama olmuyor nasıl yapabilirim.

    şöyle ki;

    IF EXISTS (Select * from #gecici Where renka = 'KREM') BEGIN

    select * from #gecici WHERE boyut = '10A' and renkb = 'KREM'



    IF EXISTS (Select * from #gecici Where renka = 'LACİVERT')

    select * from #gecici WHERE boyut = '20A' and renkb = 'KREM'



    IF EXISTS (Select * from #gecici Where renka = 'BORDO')

    select * from #gecici WHERE boyut = '30A' and renkb = 'KREM'


    IF EXISTS (Select * from #gecici Where renka = 'LACİVERT')

    select * from #gecici WHERE boyut = '40A' and renkb = 'KREM'



    END;


    bu 4 IF EXITS sonucu tek tabloda birleştirmek istiyorum nasıl yapabilirim

    yardımcı olursanız sevinirim
     
  2. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    897
    Beğenilen Mesajlar:
    236
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    normalde select ler arasına ; koymadan
    UNION koyarsan birleşir. Tabi select le gösterilecek alan sayıları eşitse, sende eşit zaten aynı tablo ve * koymuşsun.
    Senin sorguda IF ler olduğu için UNION işe yaramıyor.

    Sorguyu anlamaya çalıştım, beynim su kaynattı.? Manava demişsinki "elma varsa bana ordan 3 kilo armut ver".
    Kayıt yapın bu sorguya uygun olabilir ve doğru çalışıyor olabilir bilemiyorum...
    yeterli örnek kayıt olsa, sağlıklı bir sorgu önerebiliriz belki.

    Normalde örneksiz zor sorgulara bakamam çünki çok vakit alır çözmesi, bugün kod yazmıyorum diye ilgilendim.:)

    IF ler gereksiz gibi görünüyor, bide öyle deneyeyim bakalım.:rolleyes:
     
  3. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    897
    Beğenilen Mesajlar:
    236
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Anlamaya çalışayım.
    EĞER, tabloda en az bir adet renka = 'KREM' varsa SELECT sorgusu çalışsın istiyorsan.? Yukarda öyle istemişsin görünüyor.
    Şu işine yararmı.? İçteki iflerdeki şartı, where e aktardım.


    HTML:
    
    IF EXISTS (Select a from tbl1 Where a = 'krem')
    BEGIN
        select a, b, c, '1' from tbl1 WHERE b = '10A' and c = 'krem'    UNION
        select a, b, c, '2' from tbl1 WHERE a = 'siyah' AND b = '20A' and c = 'krem' UNION
        select a, b, c, '3' from tbl1 WHERE a = 'yeşil' AND b = '30A' and c = 'krem' UNION
        select a, b, c, '4' from tbl1 WHERE a = 'laci' AND b = '40A' and c = 'krem'
    END;
    
    
    Belkide budur - tüm if şartlarını WHERE lere aktardım.

    HTML:
    
    select a, b, c, '1' from tbl1 WHERE a = 'krem' AND b = '10A' and c = 'krem' UNION
    select a, b, c, '2' from tbl1 WHERE a = 'siyah' AND b = '20A' and c = 'krem' UNION
    select a, b, c, '3' from tbl1 WHERE a = 'yeşil' AND b = '30A' and c = 'krem' UNION
    select a, b, c, '4' from tbl1 WHERE a = 'laci' AND b = '40A' and c = 'krem'
    
    
    Üstteki nin tek select le yazılmış hali.

    HTML:
    
    select * from tbl1
    WHERE (a = 'krem' AND b = '10A' and c = 'krem')
    OR
    (a = 'siyah' AND b = '20A' and c = 'krem')
    OR
    (a = 'yeşil' AND b = '30A' and c = 'krem')
    OR
    (a = 'laci' AND b = '40A' and c = 'krem')
    
    
    select lerdeki '1' '2' gibi rakamları ekledimki hangi selectten sonuç geldiğini anlayayım diye... normalde yoklar.
     
    Son düzenleme: 16 Mayıs 2018
  4. demir12

    demir12 Daimi Üye

    Kayıt:
    10 Eylül 2008
    Mesajlar:
    808
    Beğenilen Mesajlar:
    0
    sedir agacı cok teşekkür ediyorum ilginize

    bana sorgu sonucu dogru geliyoda

    alt alta 4 tane select cümlesi yazmısım gibi 4 farklı tablo açılıyo sorguda geliyo


    yukarıdakileri bir tabloda birleştirmek istiyorum nasıl yapabilirim acaba
     
  5. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    897
    Beğenilen Mesajlar:
    236
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    @demir12
    yazdıklarımı uyarlamaya çalış. Sonuç birleşik geliyor. Sorgu ve alanlar seninkinin aynı sadece sadeleştirdim, alan isimlerini a, b, c diye kısalttım.

    Örnek veri olmadan daha fazlasını yapmaya, benim kapasitem yetmiyor. :D
    Kolay gelsin.
     
  6. demir12

    demir12 Daimi Üye

    Kayıt:
    10 Eylül 2008
    Mesajlar:
    808
    Beğenilen Mesajlar:
    0

    Cok teşekkür ederim hocam bu işe yaradı :)

    "


    select * from tbl1
    WHERE (a = 'krem' AND b = '10A' and c = 'krem')
    OR
    (a = 'siyah' AND b = '20A' and c = 'krem')
    OR
    (a = 'yeşil' AND b = '30A' and c = 'krem')
    OR
    (a = 'laci' AND b = '40A' and c = 'krem')

    "