2009-07-15 14 views
6

क्या कोई व्यक्ति प्रति दिन ऑर्डर की कुल संख्या की गणना करने के लिए SQL क्वेरी पोस्ट कर सकता है?प्रति दिन ऑर्डर की कुल संख्या की गणना के लिए एसक्यूएल क्वेरी?

यहां मेरे डेटाबेस में उनके डेटा के साथ कॉलम हैं।


order_id order_placed_date order_total 
- 1 12/30/2008 12:06:24 AM 2499.99 
- 2 2/3/2009 1:57:17 AM 199.99 
- 3 2/3/2009 1:58:27 AM 449.99 
- 4 5/3/2009 1:58:48 AM 299.99 
- 5 6/3/2009 2:00:31 AM 359.94 
- 6 6/3/2009 2:01:47 AM 279.97 
- 7 6/3/2009 2:02:31 AM 1359.94 
- 9 7/1/2009 2:21:18 PM 5099.98 
- 10 7/1/2009 2:21:36 PM 2621.97 
- 11 7/2/2009 2:22:18 PM 2169.95 
- 12 7/3/2009 2:23:29 PM 2249.95 
- 13 7/4/2009 2:24:24 PM 5509.95 
- 14 7/5/2009 12:15:17 AM 449.99 
- 15 7/5/2009 12:18:08 AM 2299.99 
- 16 7/5/2009 12:18:28 AM 3999.99 
- 17 7/5/2009 12:18:45 AM 1939.99 
- 18 7/5/2009 11:58:07 PM 39.99 
- 19 7/6/2009 12:00:42 AM 1899.99 
- 20 7/6/2009 12:01:00 AM 3999.99 
- 21 7/7/2009 12:06:38 AM 199.99 
- 22 7/7/2009 12:08:31 AM 1143.97 
- 23 7/7/2009 12:09:13 AM 449.99 
- 26 7/15/2009 1:30:03 PM 5469 
- 27 7/15/2009 2:14:24 PM 329.97 
- 28 7/15/2009 6:18:47 PM 5469 
- 29 7/15/2009 10:17:36 PM 39.99 

उदा के लिए 2 आदेश मैं एक एसक्यूएल क्वेरी जो गणना और प्रति दिन कुल राशि पता चलेगा की जरूरत फरवरी 2009 के

- 2 2/3/2009 1:57:17 AM  199.99 
- 3 2/3/2009 1:58:27 AM  449.99 

महीने में देखते हैं। तो फ़र, 2009 के 3 के लिए, कुल लागत यह होगी 699,98

मैं इसे भी उल्लेख करते हैं एक चार्ट

में प्रतिदिन कुल आदेश राशि प्रदर्शित करने के लिए अगर यह PHP के साथ यह करने के लिए आसान होगा की जरूरत है,।


अद्यतन:
मैं स्पष्ट करने के लिए है कि मैं वर्तमान माह में कुल राशि प्रति दिन की जरूरत चाहते हैं। मैं अपने प्रारंभिक प्रश्न में उल्लेख करना भूल गया।

इसलिए मैंने इस महीने में आदेशों की कुल संख्या + प्रति दिन कुल राशि प्राप्त करने के लिए पीटर की क्वेरी को उखाड़ फेंक दिया।

कृपया मुझे बताएं कि क्या इसे किसी भी सुधार की आवश्यकता है या क्या ऐसा करने का एक बेहतर और छोटा तरीका है।


SELECT date(order_placed_date), COUNT(order_id) AS num_orders, SUM(order_total) AS daily_total 
FROM orders 
WHERE order_placed_date>=date_sub(current_date, INTERVAL 31 DAY) 
GROUP BY date(order_placed_date) 
+0

दिन पैरामीटर होगा? या यह आज से बंधेगा? या यह उस दिन के लिए "तारीख"/"कुल" की एक तालिका वापस करेगा? – NikolaiDante

उत्तर

9

MySQL's date() function किसी भी घंटे/मिनट/दूसरी जानकारी के बिना DATEIME या TIMESTAMP मान वापस कर देगा - जिसका अर्थ है कि आप मूल्य के दिन सटीकता को कम करते हैं।

तो आपको बस इतना करना है कि उसके द्वारा समूह है और फिर अपने कुल कार्यों को सही कॉलम में जोड़ें।

SELECT date(order_placed_date) 
    , COUNT(id) AS num_orders 
    , SUM(order_total) AS daily_total 
    FROM [Table] 
GROUP BY date(order_placed_date) 
+1

एक बयान से –

+0

हाहा, धन्यवाद। जोड़ा गया;) –

+0

उत्कृष्ट, एक आकर्षण की तरह काम किया। अब मुझे इसे अपने चार्ट में अग्रेषित करना होगा। –

0

एक group by अपने दोस्त यहाँ है। यह समूहीकृत पंक्तियों पर कुल हो सकता है। एक उदाहरण क्वेरी होगा:

SELECT order_placed_date, SUM(order_total) 
    FROM orders 
GROUP BY order_placed_date 
बेशक

, अपने उदाहरण में आप शायद उस से सिर्फ दिन/माह/वर्ष हिस्सा DATE() समारोह का उपयोग कर, और समूह निकालना चाहते हैं चाहते हैं।

+0

यह काम नहीं करेगा क्योंकि ऑर्डर भाग्य एक डेटाटाइम फ़ील्ड है और सेकंड से समूह करेगा।उन्होंने एसयूएम को एवीजी नहीं मांगा। –

+0

मैंने देखा कि उत्तर पोस्ट करने के बाद एक मिनट और तदनुसार संपादित किया गया। – MoshiBin

0

मैं क्या यह MYSSQL में है पता नहीं है लेकिन MSSQL में यह इस होगा,

select 
datepart(yyyy, order_placed_date), 
datepart(mm, order_placed_date), 
datepart(dd, order_placed_date), 
sum(order_total) 
from orders 
group by datepart(yyyy, order_placed_date), datepart(mm, order_placed_date), datepart (dd, order_placed_date) 
1
SELECT date(order_placed_date) 
    , COUNT(id) AS num_orders 
    , SUM(order_total) AS daily_total 
    FROM orders 
GROUP BY 1 

बस पीटर जवाब की नकल की है, लेकिन अभी यह काम करेगा, उसे बदला। इसके अलावा समूह ने शॉर्टकट किया।

0
select YEAR(datename(year,ORDER_DATE)) as YEARS, 
     count(ORDER_nO) as [NO(ORDER)] 
     from ProductOrder 
     group by YEAR(datename(year,ORDER_DATE)) 
+0

क्या आप अपने उत्तर के आसपास संदर्भ प्रदान कर सकते हैं? धन्यवाद! – Shawn

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