2 Tarih Arasındaki Fiyat Toplamı?
şimdi ben
Aylar içerisindeki atıyorum şubat ayı içerisindeki fiyatların toplamını almak istiyorum ve
şuanki zamandan atıyorum bugün ayın 19 u ayın 19 una kadar olan fiyatların toplamını
yıl içerisindeki 2019 a ait toplam fiyatı gibi bunları nasıl yapabilirim.
yardımcı olabilirmisiniz, teşekkürler.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
PHP kullanarak fiyatlar içerisinden belirli bir tarih aralığı veya aya ait toplam fiyatı hesaplamak için öncelikle verilerinizi bir veritabanında saklamanız gerekir. Daha sonra, veritabanı sorguları kullanarak istediğiniz tarih aralığındaki veya aya ait fiyatları sorgulayabilirsiniz. Örneğin, şubat ayı için fiyatları sorgulamak için aşağıdaki gibi bir SQL sorgusu kullanabilirsiniz:
SELECT SUM(price) FROM prices WHERE MONTH(date) = 2;
Bu sorgu, "prices" adlı tablonun "date" sütununda şubat ayı olan tüm kayıtların "price" sütununda yer alan değerlerin toplamını döndürür.
Bu sorguyu PHP kullanarak çalıştırmak için, PDO (PHP Data Objects) veya MySQLi kullanabilirsiniz. Örneğin, PDO kullanarak sorguyu çalıştırmak için aşağıdaki gibi bir kod parçacığı kullanabilirsiniz:
$pdo = new PDO('mysql:host=hostname;dbname=database_name', 'username', 'password');
$stmt = $pdo->prepare('SELECT SUM(price) FROM prices WHERE MONTH(date) = ?');
$stmt->execute([2]);
$total_price = $stmt->fetchColumn();
Bu kod parçacığı, veritabanına bağlanır, şubat ayı için fiyatların toplamını sorgulayan bir sorgu hazırlar ve sonuçları $total_price değişkenine atar.
Dilerseniz fiyatların toplamının yanı sıra fiyatların sayısını ve ortalamasını da sorgulayabilirsiniz.
@codepacks
peki ben tablolaları datetime olarak tutuyorum tarih sütünlarını daha doğrusu bir problem teşkil etmez umarım.
mesela
$Func->q("SELECT SUM(ucret) as son45 FROM isler WHERE is_tarihi BETWEEN DATE_SUB( CURDATE() ,INTERVAL 45 DAY ) AND CURDATE()")->fetch(2);
bu şekilde bugün hariç son 45 güçlük ücretler toplamını alıyorum
$Func->q("SELECT SUM(ucret) as Bugun FROM isler WHERE DAY(is_tarihi) = DAY(CURDATE());")->fetch(2);
böylede bugünün toplamını alyıorum iyice kafam karıştı yine :)
ama sanırım senin verdiğin çözüm olabilir müsait olduğumda deneyeceğim oylayacağım teşekkür ederim.
2 tarih arasındaki verileri seçmek için BETWEEN ifadesini kullanabilirsin.
Aylık veya yıllık fiyat toplamlarını almak için ise grupby bölme yapabilirsin.
Örnek kodlar
$b_tarih = '2022-01-01';//başlangıç tarihi
$e_tarih = '2022-12-31'; //bitiş tarihi
$stmt = $pdo->prepare("SELECT MONTH(tarih) as month, SUM(fiyat) as toplam_fiyat FROM siparisler WHERE tarih BETWEEN :b_tarih AND :e_tarih GROUP BY MONTH(tarih)");
$stmt->bindParam(':b_tarih', $b_tarih);
$stmt->bindParam(':e_tarih', $e_tarih);
$stmt->execute();
// Dizeyi ilişkisel olarak ayarlamak
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
Bu kod veritabanında "siparisler" tablosunda "tarih"
sütununda 2022 yılına ait verileri arar ve bulunan verileri ay bazlı toplar.