Şimdi Ara

üç tablodan sorgu çalıştırmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
687
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar veriler.mdb adlı veritabanımda üç adet tablom var.
    1. tablo =evler

    id
    adi
    soyadi
    adresi

    2. tablo=islemler
    id
    evlerid
    tarih
    giden_adet
    gelen_adet
    ucret

    3.tablo=avanslar

    id
    evlerid
    tarih
    avans

    projemde hesaplama adında bir formum var. bu formda iki adet datetimepicker ve bir hesapla butonum var.
    yapmak istediğim şey datetimepickerler de seçtiğim tarih aralığında evler tablosunda (1.tablo) kişi id ine göre o kişinin adını soyadını; islemler tablosunda (2.tablo) giden_adet varsa toplamı yoksa "0" , gelen_adet varsa toplamı yoksa "0" , avanslar tablosunda(3.tablo) varsa avans toplamı yoksa "0" sorgu sonucu gelen verileri listview de listelemek.

    listeleme konusunda sorunum yok. tek sorun verileri bu üç tablodan istediğim şekilde çekmek yani sql cümlesinde sorun çekiyorum.

    tablo1 ve tablo2 deki verileri istediğim gibi çekip listeleyebiliyorum ancak tablo3 işin içine girince sonuşlar yanlış çıkıyor. (doğru ilişki kuramadığımdan sanırım)
    1 ve 2 . tablo için oluşturuduğum sorgu aşağıda

    kod:


    Dim itarih, starih As Date
    itarih = DateValue(Me.DateTimePicker1.Value)
    starih = DateValue(Me.DateTimePicker2.Value)

    Dim sqlevkodu, sqlislemvarmi, sqlislemler, sqlavanslar, sqlavansvarmi, sqlislemvar, sqlavansvar, sqlkayitsayisi, sqlevler, sqlhesap As String
    Dim adi, soyadi As String
    Dim kaysay As Int64
    Dim evid As Int64
    Dim gelent, gident, kalant As Integer
    Dim ucrett, avanst, tutar As Double
    Dim baglan As New OleDbConnection("PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=veriler.mdb")

    sqlislemler = "SELECT evler.id, evler.adi, evler.soyadi, SUM(islemler.gelen_adet) AS gelent, SUM(islemler.giden_adet) AS gident, SUM(islemler.ucret) AS ucrett FROM (evler RIGHT OUTER JOIN islemler ON evler.id = islemler.evid)WHERE (islemler.tarih between datevalue('" & itarih & "') and datevalue('" & starih & "'))GROUP BY evler.id, evler.adi, evler.soyadi"
    Dim komut As New OleDbCommand(sqlislemler, baglan)
    baglan.Open()
    Dim gelenq As OleDbDataReader
    gelenq = komut.ExecuteReader
    Dim x As Int64 = 0
    Me.ListView2.Items.Clear()
    Do While gelenq.Read
    Dim tar As Date = DateTimePicker2.Text
    tar = DateValue(tar)
    Dim kal As Integer
    gident = gelenq(4)
    gelent = gelenq(3)
    kal = gident - gelent
    Me.ListView2.Items.Add(gelenq(0))
    Me.ListView2.Items(x).SubItems.Add(tar)
    Me.ListView2.Items(x).SubItems.Add(gelenq(1))
    Me.ListView2.Items(x).SubItems.Add(gelenq(2))
    Me.ListView2.Items(x).SubItems.Add(gelenq(4))
    Me.ListView2.Items(x).SubItems.Add(gelenq(3))
    Me.ListView2.Items(x).SubItems.Add(kal)
    Me.ListView2.Items(x).SubItems.Add(gelenq(5) & " YTL")
    x = x + 1
    Loop
    baglan.Close()


    bu sorgulayıp listelemede problem yok
    ben avanslar tablosunda ki seşilen tarih aralığındaki avans toplamını evler.id e göre gruplayarak getirmek istiyorum.
    bu konuda bana yardımcı olabilirseniz memnun olurum.

    projenin hesaplama kısmı aşağıdaki linkten indirebilirsiniz.

    veritabanı içerisindedir

    link:http://www.dosyaupload.net/download.php?file=822077

    herkese çalışmalarında başarılar dilerim



    < Bu mesaj bu kişi tarafından değiştirildi cetincenk -- 26 Haziran 2007; 17:45:50 >







  • quote:

    Orjinalden alıntı: eyucel77

    :)

    http://www.yazgelistir.com/Forumlar/ForumSorulari.aspx?SoruID=1000014151


    eyvallah hocam tekrar çok teşekkürler ederim
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.