MySQL Rows into Columns after operations -
पहले .. | अंतिम .. श्रेणी .. | मूल्य .. | + ------ + -------- + ---------- + ------------ + एच -1 I-15 | ए | 190 | एच -1 I-15 | बी | 200 | एच -1 I-15 | डी | 1000 | एच -1 आई -4 | ए | 20 | एच -1 आई -4 | बी | 500 | एच -1 आई -4 | डी | 10000 | एच -2 आई -0 | ए | 79 | एच -2 आई -0 | बी | 365 | एच -2 आई -0 | डी | 1000 | एच -2 I-7 | ए | 450 | एच -2 I-7 | बी | 125 | एच -2 I-7 | डी | 10000 |
मुझे एक आउटपुट पसंद करना है:
पहले .. | आखिरी .... | डी ......... | एक ........ | बी ........ | ए + बी + डी .... | एच -1 I-15 | 1000 | 190 | 200 | 1390 | एच -1 आई -4 | 10000 | 20 | 500 | 10520 | एच -2 आई -0 | 1000 | 79 | 365 | 1444 | एच -2 I-7 | 10000 | 450 | 125 | 10575 |
मैंने यह कोशिश की:
पहले, आखिरी, अधिकतम (यदि (श्रेणी = 'डी', (मान), 0)) चुनें 'डी ',' अधिकतम (यदि (श्रेणी = 'बी', (मान), 0)) के रूप में 'बी', (ए + बी) के रूप में ('श्रेणी' = 'ए', (मान), 0)) 'ए' + डी) 'एबीडी' के रूप में तालिका ग्रुप से पिछले, प्रथम आदेश 'एबीडी' डीईएससी द्वारा;
लेकिन यह काम नहीं करता है।
##### संपादित करें #######
मान लीजिए कि मुझे एबीडी के रूप में (ए + बी + डी) के बजाय (ए + बी) / डी जैसे कुछ एक्सप्रेशन का उपयोग करना होगा मैं इसकी शुरुआत कैसे करूं?
##### संपादित करें ########
केस ... का उपयोग करें ... कब ... ELSE ... END
के बजाय यदि
(जो एएनएसआई अनुरूप AFAIK नहीं है):
पहले, आखिरी, अधिकतम (मामला जब श्रेणी = 'डी' फिर मूल्य मान समाप्त होता है) के रूप में `डी`, अधिकतम (मामला जब श्रेणी = 'ए' फिर मूल्य मान समापन समाप्ति) के रूप में` ए `अधिकतम '(मामले में जब श्रेणी =' बी 'तो मूल्य मूल्य दूसरी नं।))` बी` के रूप में, एसयूएम (मूल्य) एबीडी' एबीडी 'से आपकाटेबल ग्रुप द्वारा पिछले, प्रथम आदेश' एबीडी 'डीईएससी द्वारा; - अनुमान लगा रहा है कि विज्ञापन वास्तव में एबीडी
NULL
का उपयोग करने के बजाय 0
में ELSE
खंड में है यह काम नकारात्मक मानों के साथ भी करें।
इसके अलावा, उपनामों के लिए सीमांकक के रूप में '
का उपयोग न करें, आपको बैकटीक्स (`) का उपयोग करना होगा यदि उपनाम में विशेष वर्ण हैं, कुछ भी नहीं अन्यथा।
आपकी टिप्पणी के उत्तर के रूप में, सरलतम एक सबक्व्यरी करना होगा:
पहले चुनें, अंतिम, `डी`,` ए`, `बी `` (`ए` +` बी`) / `डी` के रूप में` एबीडी 'से (पहले चुनें, आखिरी, अधिकतम (मामले में श्रेणी =' डी 'THEN मान ELSE NULL END) AS' D ', MAX (केस श्रेणी = 'ए' के बाद मूल्य एलेक्स नल एण्ड) `ए` के रूप में, अधिकतम (मामला जब श्रेणी = 'बी' THEN मूल्य ELSE NULL END) के रूप में` बी 'से आपकी बीटा से पहले, पहले) ए एस एक्स के अनुसार' एबीडी ' DESC;
Comments
Post a Comment