MYSQL

2011-09-07 4 views
8

में अब से अंतिम 7 दिनों का चयन करना मेरे प्रश्न को देखने के लिए समय निकालने के लिए धन्यवाद।MYSQL

मैं इस MySQL क्वेरी है:

foreach($wpdb->get_results(
    "SELECT wp_pixelcart_calendar.datefield AS DATE, 
    IFNULL(SUM(wp_pixelcart_daily_sales.quantity),0) AS total_sales 
    FROM wp_pixelcart_daily_sales RIGHT JOIN wp_pixelcart_calendar ON (DATE(wp_pixelcart_daily_sales.order_date) = wp_pixelcart_calendar.datefield) 
    WHERE (wp_pixelcart_calendar.datefield BETWEEN (SELECT MIN(DATE(order_date)) FROM wp_pixelcart_daily_sales) AND (SELECT MAX(DATE(order_date)) FROM wp_pixelcart_daily_sales)) 
    GROUP BY DATE" 
) as $key => $row) { 

echo "<br>". $row->DATE . "',". $row->total_sales . "],"; 

} 

मैं एक कठिन समय क्वेरी में अब से पिछले सात दिनों प्रदर्शित करने के लिए आ रही है, ive के साथ चारों ओर खेल रहा:

BETWEEN (SELECT MIN(DATE(order_date)) FROM wp_pixelcart_daily_sales) AND (SELECT MAX(DATE(order_date)) FROM wp_pixelcart_daily_sales)) 

करने के लिए यह:

BETWEEN NOW() FROM wp_pixelcart_daily_sales) AND DATE_ADD(NOW(), INTERVAL 7 DAY) FROM wp_pixelcart_daily_sales)) 

लेकिन यह काम नहीं प्रतीत होता है।

किसी भी मदद की सराहना की।

धन्यवाद

उत्तर

18

इस करता है, तो काम नहीं कर रहा, लौटने 0 परिणाम, खजूर 'रेंज की अदला-बदली पर विचार करें:

BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() 
+0

Ive यह करने की कोशिश की लेकिन ऐसा कोई प्रतीत नहीं होता है कि \t कहां है (wp_pixelcart_calendar.datefield अब() और DATE_SUB (अब() , अंतराल 7 दिन)) – MattStrange

+0

यदि आप इसे WHERE खंड से हटाते हैं, तो क्या कोई परिणाम लौटाया जा रहा है? यदि हां, तो पिछले 7 दिनों के दौरान उन परिणामों की तिथियां क्या हैं? – Trevor

+0

मैंने WHERE को हटा दिया और अब() ... को छोड़ दिया और परिणाम दिखाए गए लेकिन पिछले सात दिनों से नहीं। अगर यह इस ट्यूटोरियल से इस कोड का उपयोग करने में मदद करता है http://www.richnetapps.com/using-mysql-generate-daily-sales-reports-filled-gaps/ – MattStrange

1
WHERE order_date <= NOW() AND order_date >= DATE_SUB(order_date, INTERVAL 7 DAY) 
+1

परवाह करें! यह जवाब असंगत है। यह 'DATE_SUB (अब()' होना चाहिए – thelawnmowerman

5

तुम बस लिख सकते हैं:

SELECT * FROM table WHERE date_field > DATE_SUB(NOW(), INTERVAL 7 DAY) 

 संबंधित मुद्दे