• 10-05-2013, 19:17:44
    #1
    Merhabalar yapmak istedigim bir işlem war ancak bu işlemi php ile değil mysql ile yapmak istiyorum çünkü php yaptigimiz zaman ileride sorun çıkarma olasılığı çok yüksek. mysql ve php den ciddi derecede anlayan arkadaslardan yardım bekliyorum...

    10.05.2013 ->A firmasi 5000 TL borc ekledi (ayri ayri 4 adet eklenen borcun toplami)
    09.05.2013 -> A firmasi 3000 TL ödeme yaptı (ayri ayri 3 adet eklenen ödeme toplami)
    07.05.2013 -> A firmasi 200 TL borc ekledi. (tek seferde yapilan işlem toplami)

    A firmasinin kayıtlarının toplamını bu şekilde göstermek istiyorum. Ancak olay şurda tarihlere bakarsaniz 08.05.2013 tarihi yok listede çünkü firma o gün işlem yapmamiş durumda. php ile döngü yapmak akil karı değil çünkü bu sefer 1 yilda 365 gunu sorgulayip detayi var olan kayıtlar dökmeye calistigimizda ciddisorun olacak ve işlem eger 2 yıl ve ya 3 yıl olursa 365 * 3 = 1095 gunluk bir işlem yapmak zorunda kalicaz her seferinde db ye git gel çok yoracak o yüzden işlemin php ile değil mysql ile yapilmasi gerekiyor. yardımcı olabilecek arkadaş varmı acaba ?
  • 10-05-2013, 19:21:12
    #2
    Bunu nerde listeleteceksiniz peki
  • 10-05-2013, 22:40:42
    #3
    kayitlar diye bir tablonuz olduğunu varsayalım.
    her ödeme ve borçlanma için firma_id, zaman ve bakiye diye bir alan açarsınız.
    bakiyedeki değer negatif (borçlanma) - ya da pozitif (ödeme) şeklinde olabilir.

    sonra
    SELECT sum(bakiye) FROM kayitlar WHERE zaman BETWEEN $baslangic_tarihi AND $bitis_tarihi GROUP BY zaman
    dersen her gün sonundaki borç ve artı ödemeleri listeler.

    Günlük firma ödemeleri listelemek için :
    SELECT sum(bakiye) FROM kayitlar WHERE bakiye > 0 AND zaman > $baslangic_tarihi AND zaman < $bitis_tarihi GROUP BY zaman

    Günlük firma borçlanmalarını görmek için
    SELECT sum(bakiye) FROM kayitlar WHERE bakiye < 0 AND zaman > $baslangic_tarihi AND zaman < $bitis_tarihi GROUP BY zaman

    Vesaire...
    Bu yapı ile pek sorun yaşayacağını düşünmüyorum. Elbette tam olarak başka ne işlemlere ihtiyacın olduğunu bilmeden söylüyorum. Sum ile toplam sonuç alabileceğin gibi kayıtları teker teker de listeletebilirsin toplamadan...
  • 10-05-2013, 23:43:48
    #4
    neptun adlı üyeden alıntı: mesajı görüntüle
    Merhabalar yapmak istedigim bir işlem war ancak bu işlemi php ile değil mysql ile yapmak istiyorum çünkü php yaptigimiz zaman ileride sorun çıkarma olasılığı çok yüksek. mysql ve php den ciddi derecede anlayan arkadaslardan yardım bekliyorum...

    10.05.2013 -> A firmasi 5000 TL borc ekledi (ayri ayri 4 adet eklenen borcun toplami)
    09.05.2013 -> A firmasi 3000 TL ödeme yaptı (ayri ayri 3 adet eklenen ödeme toplami)
    07.05.2013 -> A firmasi 200 TL borc ekledi. (tek seferde yapilan işlem toplami)

    A firmasinin kayıtlarının toplamını bu şekilde göstermek istiyorum. Ancak olay şurda tarihlere bakarsaniz 08.05.2013 tarihi yok listede çünkü firma o gün işlem yapmamiş durumda. php ile döngü yapmak akil karı değil çünkü bu sefer 1 yilda 365 gunu sorgulayip detayi var olan kayıtlar dökmeye calistigimizda ciddisorun olacak ve işlem eger 2 yıl ve ya 3 yıl olursa 365 * 3 = 1095 gunluk bir işlem yapmak zorunda kalicaz her seferinde db ye git gel çok yoracak o yüzden işlemin php ile değil mysql ile yapilmasi gerekiyor. yardımcı olabilecek arkadaş varmı acaba ?
    Benim anlamadığım, neden her seferinde dbye git gel yapmak zorundasınız ki? Bir sefer veritabanına gider gelirsiniz, ondan sonra sizin işlem yeteneğinize kalır gerisi. Bu da ne veritabanını yorar, ne de sunucuyu. Milyonluk kayıtlarda bile sorunsuz işlem yaparsınız PHP ve MySQL ile eğer adam akıllı yazabiliyorsanız.
  • 11-05-2013, 00:56:09
    #5
    SELECT SUM( `Tutar` ) AS ToplamTutar, DATE( Tarih ) AS SadeTarih FROM TabloAdi WHERE UserId = '108' GROUP BY SadeTarih ORDER BY SadeTarih DESC

    ben bu şekilde yazdm gerisi php tek sorgu

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 00:56:09 -->-> Daha önceki mesaj 00:52:37 --

    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Benim anlamadığım, neden her seferinde dbye git gel yapmak zorundasınız ki? Bir sefer veritabanına gider gelirsiniz, ondan sonra sizin işlem yeteneğinize kalır gerisi. Bu da ne veritabanını yorar, ne de sunucuyu. Milyonluk kayıtlarda bile sorunsuz işlem yaparsınız PHP ve MySQL ile eğer adam akıllı yazabiliyorsanız.

    Yorum için teşekkürler hocam. ben zaten sürekli dbye git gel yapmamak için açtım bu konuyu. Tek sorgu ile halolması için ki zaten yazdım koduda. Döngüye sokup yapcak olduktan sonra if else ye bakar sonra milyonlarca kez gitsin gelsin. benimde zaten isteğim tek sorguda bitirmek işlemi.. Yanlış anlaşılma var sanırım. Kolay gelsin...