Bulunan 1 den 5 - Toplam 5
join işleminde like i nasil kullanabilirim? - - Programlama - Ceviz Forum
  1. #1
    Ceviz Üyesi
    Üyelik Tarihi
    15-Mayıs-2010
    Mesaj
    55

    Varsayılan join işleminde like i nasil kullanabilirim?

    merhaba

    iki tablom var bolgeler ve siparisler diye

    bolgeler tablom

    id | Adı | Tipi
    --------------------------
    1.1 | Marmara | 2
    1.1.1 | istanbul | 1
    1.1.2 | izmit | 1
    1.2 | ege | 2
    1.2.1 | izmir | 1
    1.2.2 | afyon

    siparis

    id | il | miktar
    --------------------------
    1 | 1.1.1 | 3
    2 | 1.1.1 | 5
    3 | 1.2.2 | 7
    4 | 1.2.1 | 5


    bunun gibi tablom var bolgeler tablosunda tip=2 bolge, tip=1 iller.
    siparisler de iller bazinda acilmis ama ben bolge bazinda rapor almak istiyorum. nasil yapabilirim?


    select bol.adi,bol.id,bol.tip, sum(sip.miktar) as sip_toplam
    from bolgetan bol
    left join siparis sip on bol.id=sip.il
    where bol.tipKodu=2
    bu sekilde sql calistirdigimda dogal olarak siparislerde il bazinda kayit tutuldugundan bolge raporu alamiyorum. siprasi tablosunda bolge bazinda like cekmem gerekiyor ama bunu nasil yapabilirim?

  2. #2
    Ceviz Üstadı Ferhat Özdemir Üyenin Avatarı
    Üyelik Tarihi
    14-Nisan-2006
    Nereden
    Texas
    Mesaj
    3,201

    Varsayılan

    Kod:
    select bol.adi,bol.id,bol.tip, sum(sip.miktar) as sip_toplam
    from bolgetan bol
    left join siparis sip on bol.id=sip.il
    where bol.tipKodu=2 AND bol.adi LIKE 'degisken'

  3. #3
    Ceviz Üyesi
    Üyelik Tarihi
    15-Mayıs-2010
    Mesaj
    55

    Varsayılan

    left join siparis sip on bol.id=sip.il

    bu satirda bolge bazinda sipariste kayit olmadigindan bos donmez mi ve degisken nedir?

  4. #4
      skacurt Üyenin Avatarı
    Üyelik Tarihi
    04-Ocak-2008
    Nereden
    İstanbul
    Mesaj
    4,271

    Varsayılan

    Bu tablo yapısı ile bölgesel bazda bir gruplama yapmak için aşağıdaki gibi bir sorgu gerekir (şu alt kategori sistemini yanlış anlamadıysam)
    Kod:
    select bol.adi,bol.id,bol.tip, sum(sip.miktar) as sip_toplam
    from bolgetan bol
    left join siparis sip on sip.il Like Concat(bol.id,'.%')
    where bol.tip=2 Group By bol.adi
    Not: Veritabanının MySQL olduğunu farzettim. Concat ile ilgili bilginiz yoksa metin birleştirme yaptığını söyleyeyim; örneğin Concat(bol.id,'.%') -1.1 bölgesi için- '1.1.%' değeri oluşturuyor ki bu sorgudaki Like ile kullanılması gereken diziliş bu.
    ~^~

  5. #5
    Ceviz Üyesi
    Üyelik Tarihi
    15-Mayıs-2010
    Mesaj
    55

    Varsayılan

    @skacurt hocam cok sagolun aradigim buydu

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Yer İmleri

Mesaj Yetkileriniz

  • Yeni konu açmaya yetkiniz yok
  • Cevap yazmaya yetkiniz yok
  • Eklenti yüklemeye yetkiniz yok
  • Mesajınızı düzeltmeye yetkiniz yok
  •