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

Popular posts from this blog

c# - SignalR: "Protocol error: Unknown transport." when navigating to hub -

c# - WPF Expander overlay used in ItemsControl -

android - how to get distance of 2 beacons and make a condtion base on that distance -