Tek bir sorguda sipariş toplam tutarını ($) ve fatura sayımını 5 günlük süre içinde seçmeye çalışıyorum. Bunun olmasına rağmen bunu elde edemiyorum. Ben değilim ben burada var şimdiki sorgu ...MySQL DATE_ADD kullanımı, 5 günlük aralık
SELECT
COUNT(id) as invoice_count,
SUM(orderTotal) as orders_sum,
UNIX_TIMESTAMP(created) as created
FROM ids_invoice
WHERE DATE_ADD(created, INTERVAL +1 DAY)
AND userId = 23 LIMIT 5'
tamamen emin DATE_ADD aradığım doğru fonksiyonudur. Ben alıyorum Şu
....
Array (
[0] => Array (
[invoice_count] => 420
[orders_total] => 97902.90
[created] => 1252596560
)
)
Array (
[0] => Array (
[invoice_count] => 68
[orders_total] => 14193.20
[created] => 1262900809
)
)
Ben böyle bir şey daha almak istiyorum
...
Array (
[0] => Array (
[invoice_count] => 18
[orders_total] => 4902.90
[date] => 04-19-2010
)
)
Array (
[0] => Array (
[invoice_count] => 12
[orders_total] => 5193.20
[date] => 04-20-2010
)
)
ben bu yüzden belki mysql tarih fonksiyonları için oldukça yeni Ben sadece mysql docs geçerken ihtiyacım olan işlevi özledim.
UPDATE Sorgumu güncelledim ... Bu, faturaların olduğu her gün için hala bir satır çekmiyor. Yalnızca kullanıcı tarafından karşılanan ve kullanıcı tarafından belirlenen ölçütleri karşılayan 20’den faturalar alınıyor.
SELECT
COUNT(id) as invoice_count,
SUM(orderTotal) as orders_sum,
UNIX_TIMESTAMP(created) as created
FROM ids_invoice
WHERE
created BETWEEN "2010-04-19 00:00:00" AND DATE_ADD("2010-04-19 00:00:00", INTERVAL +5 DAY) AND
userId = 17
beni belirtilen zaman dilimi içinde mevcut olmayan herhangi rakamlar için varsayılan değerleri elde etmek mümkün mü? – Webnet
@Webnet: İstediğiniz aralığı kapsayan tarihlerin listesini, tarih ve "oluşturulan" değerine dayalı "IDS_INVOICE" tablosuna SOL JOIN. MySQL'in özyinelemeli alt sorgusu yoktur - ihtiyacınız olan tarih hesaplamasını almak için bir sayı tablosu oluşturabilir veya bir CROSS JOIN kurulumunu kullanabilirsiniz. –
Söylediklerinizin mantığını anlıyorum, mükemmel bir anlam ifade ediyor. "SELECT COUNT (id)" i ingilizce_dosyası FRON ids_invoice LEFT JOIN ids_invoice İLE NOW() VE DATE_ADD (ŞİMDİ(), INTERVAL 5 GÜN) ' olduğundan eminim. ama bahsettiğin şeyin sözdiziminden emin değilim. – Webnet