mysql - SQL loop with data aggregation -
इस सवाल का पहले से ही एक उत्तर है: < / p>
- 8 जवाब
मैं MySQL 5.5 का उपयोग कर रहा हूँ .38 और निम्न तालिका मिली (यह सिर्फ एक स्निपेट है, वास्तविक में ~ 500 उत्पाद हैं):
+ ------ + ------- + - -------- + ------- + -------- + | आईडी | तिथि | उत्पाद | प्रकार | बिक्री | + ------ + ------- + ---------- + ------- + -------- + | 4513 | 14958 | XXXXXXX | 1 | 3 | | 4514 | 14958 | XXXXXXX | 2 | 5 | | 4519 | 14958 | YYYYYYY | 1 | 10 | | 4531 | 14958 | YYYYYYY | 3 | 150 | | 4534 | 14 9 559 | ZZZZZZZ | 1 | 5 | | 4536 | 14 9 559 | ZZZZZZZ | 2 | 5 | | + ------ + ------- + ---------- + ------- + -------- + < / प्री>
जिससे मुझे उत्पाद द्वारा दैनिक बिक्री की मात्रा उत्पन्न करने की आवश्यकता है:
+ ------- + ---------- + - -------- + ---------- + | तिथि | XXXXXXX | YYYYYYY | ZZZZZZZ | + ------- + ---------- + ---------- + ---------- + | 14958 | 8 | 110 | 0 | + ------- + ---------- + ---------- + ---------- + | 14 9 559 | 0 | 0 | 10 | | + ------ + ---------- + ---------- + ---------- +
परिणाम तालिका को ऊपर की तरह दिखना है - स्तंभों और पंक्ति के दिनों में उत्पादों के साथ।
बस कुछ बिंदुओं की तलाश करते हुए, कार्य समाधान नहीं। धन्यवाद, पावेल।
गतिशील एकत्रीकरण के लिए,
SET @sql = NULL; चुनें GROUP_CONCAT (अलग कंकाट ('SUM (मामले जब उत्पाद = एक' 'उत्पाद, एक' 'तब एक विक्रय होगा, एक उत्पाद)), मेरे @table से @ sql में; SET @sql = CONCAT ('SELECT date,', @sql, 'my_table ग्रुप बाय डेट'); एसएसएमएएम से एसटीएमटी तैयार करें; EXTUTE STMT; डेलॉलिकेट तैयार करें STMT;
सशर्त
केस का उपयोग करके
समूह के साथ (स्थिर के लिए)
SELECT s.date, एसएम (मामला जब एस। प्रोडक्ट = 'एक्स XXXXXXX' तो एस एसएसएलएसई ELSE 0 END) एएस 'XXXXXXX' के रूप में, एसएम (मामला जब एस। प्रोडक्ट = 'वाई वाई य्यय्याय' तो एसएसएसएलएसई ELSE 0 एडीडी) एएस 'वाई वाई य्याय्याय', एसएम ( मामले में जब s.product = 'ZZZZZZ' तो एस एसएसएलएसई ELSE 0 END) के रूप में 'ZZZZZZZ' से my_table एस ग्रुप द्वारा s.date;
Comments
Post a Comment