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 ?
Php yerine Mysql ile işlem yapmak istiyorum. İleri düzeyde mysql yardım
4
●1.070
- 10-05-2013, 22:40:42kayitlar 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:48Benim 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.neptun adlı üyeden alıntı: mesajı görüntüle
- 11-05-2013, 00:56:09SELECT 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
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...