Şimdi Ara

Veritabanı ilişkisi hakkında

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
9
Cevap
0
Favori
403
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar Merhaba, şöyle bir sorum var. daha açıklayıcı olabilmek için resim dosyası olarak ta ekledim.


    firma_odemeler ve toplam_odemeler diye iki tablom var. ilk tabloda firmaların yaptığı işe karşılık belirtilen tarihlerde aldıkları ödeme_tutarları görünüyor. örnek olarak akhisar inşaaatın demir alımı ve kapı alımı olmak üzere iki işi bulunmaktadır. demir alımı işinde farklı zamanlarda üç ayrı ödeme alıyor. benim istediğim nokta şu, ilk tabloda texboxlara el ile girip yaptıktan sonra bir alttaki tabloda (toplam_odemeler) akhisar firmasının - demir alımı - işi ile ilgili tüm ödemelerin yan yana gelmesini sağlayacak sql cümlesi veya c# kodu sizce ne olmalıdır ? veya acceste ayrıca nasıl bir sütun açarsam daha anlaşılır olur bu tabloları ilişilendirmem. şimdiden teşekkür ederim..
     Veritabanı ilişkisi hakkında







  • where kullanarak count ile SQL'den, oluşacak sütun sayısını oluşturup, ona göre dgv'de sütun eklersin.
    Sonra da veriyi çekersin.
  • Kimse yardım etmedi ve ben hala araştırmaya ögrenmeye çalışıyorum. sitedeki arkadaşlara teşekkürler.
  • C# koduna girmeden algoritma olarak aklima gelen ilk sey su oluyor
    Once bir liste ile firma adi ve odemeleri periyodik olarak alip
    select firma_adi , odeme from tablo1 order by odeme_tarihi desc ;
    daha sonra bu liste uzerinde loop ederek firma adini ve odemeyi aliriz. Tarihe gore siralattigimiz icin ilk bilgi son odemeye ait olacak. Burada sonra if-else ler basliyor.
    if ( firma adi yoksa ) select * from tablo2 where firma_adi = 'ilkTablodakiFirmaAdi' ---> bos donuyorsa
    -- firma adi ve son odeme insert edilir.
    else if ( firma adi ve son odeme varsa )
    //Burada bir if daha gerek.
    if( firma adi ve ikinci odeme varsa )
    firma adi ve ilk odeme kaydedilir.
    else
    firma adi ve ikinci odeme kaydedilir.
    else if ( firma adi ve ikinci odeme varsa )
    firma adi ve ilk odeme kaydedilir.
    else
    burada giriyorsa ilk tabloda bir firma icin 3 ten fazla odeme var demektir. Exception.

    Muhtemelen bir yerlerde yaniliyorumdur ama bu sekilde is gorurmus gibi geldi.

    Edit: Yukaridaki aciklama cok corba gorunuyor. Aleme ibret olsun diye silmiyorum , asagida duzeltilmis halini yazacagim : )

     
    if ( firma adi yoksa ) select * from tablo2 where firma_adi = 'ilkTablodakiFirmaAdi' ---> bos donuyorsa{
    -- firma adi ve son odeme insert edilir.
    }else if( firma adi ve son odeme varsa){
    //Burada bir if daha gerek.
    if(firma adi ve ikinci odeme varsa){
    firma adi ve ilk odeme kaydedilir.
    }else{
    firma adi ve ikinci odeme kaydedilir.
    }
    }else if( firma adi ve ikinci odeme varsa){
    firma adi ve ilk odeme kaydedilir.
    }else{
    burada giriyorsa ilk tabloda bir firma icin 3 ten fazla odeme var demektir. Exception.
    }



    < Bu mesaj bu kişi tarafından değiştirildi Mephalay -- 11 Kasım 2015; 11:36:39 >
    < Bu ileti tablet sürüm kullanılarak atıldı >




  • Mephalay estafullah çorba gibi olmamış bilakis çorbada eksik olan tuz gibi olmuş. teşekkürler. ben şimdi senin yazdıkların ışığında inşallah yapmaya çalışırım. tekrar çok teşekkürler.
  • talebe41 T kullanıcısına yanıt
    Veritabanı dizaynın düzgün değil dostum. Veritabanı tablolarında 1. 2. 3. ödeme(4. 5. 6. ödeme.. devamı gelebilir değil mi ?), toplam ödeme gibi alanlar kesinlikle bulunmamalı. Firmaya/firmalara ait ödemeleri kodlarla çekip "sanal" bir tabloda dilediğin gibi filtreleyip göstermen daha iyi olur. Internetten veritabanı normalizasyonu ile ilgili araştırma yap belki biraz açar seni. Ha bu dediklerim aslında SQL için geçerli, access ile ilgili deneyimim yok. Eğer ders için değilde, geliştirmek amacıyla böyle birşeylerle ilgileniyorsan haber ver SQL de nasıl yapılacağına yardımcı olurum.

    Ayrıca seni yanlışda anlamış olabilirim ama çok daha basit bir şekilde istediğine ulaşmak mümkün.
  • Psiacron P kullanıcısına yanıt
    Merhaba Psiacron hocam öncelikle teşkkür ederim, normalizasyon ile ilgili video ve derslere bakıyorum. sizden rica etsem sql ile ilgili ufak bir örnek kod yazarsanız çok sevinirim. burda firmaları filtrelemek için if veya for döngüsünü nasıl kullanırız. şimdiden teşekür ederim.
    not: ögrenmek ve kendimi geliştirmek amacıyla uğraşıyorum.
  • Yapay Zeka’dan İlgili Konular
    Altyapı hakkında
    8 ay önce açıldı
    Daha Fazla Göster
  • Kendini eğitmek içinse o zaman SQL'e geçiş yapmanı tavsiye ederim. SQL'de verilerini tuttuktan sonra istersen dosya olarak excel'e aktarabilirsin ve işin çok daha pratik ve sağlam olur.

    Senin bahsettiğin şey için kod yazmak aslında çok kolay olurdu lakin şöyle bir durum var, veritabanın düzgün olmadığı için filtreleme opsiyonunun %100 doğru çalışması pek muhtemel değil.

    Senin bu istediğin için 3 tane tablon olacak. Ondan önce ID mantığını öğrenmen gerek. Buradan yazmasına yazarım ama çok uzar kardeşim... sen beni skype ekle ben sana anlatım yaparım. Mesaj attım sana.
  • Psiacron P kullanıcısına yanıt
    Psiacron ustam , çok teşekkür ederim. mesajınıza yanıt döndüm. sizin gibi arkadaşların olması bu site ve yazılım dünyası için bir mükafat.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.