sql - where clause in mysql pivot qyery -
तालिका
+ ------- ---------- + ------------ + -------------- + | Submit_time | Field_name | Field_value | + ----------------- + ------------ + -------------- + | 1410098760.2225 | टोपी | 40128 | | 1410098760.2225 | प्रांत | बोलोग्ना | | 1410098760.2225 | स्थानीयता | बोलोग्ना | | 1410098760.2225 | अनिरुद्ध | वाया रोमा | | 1410098760.2225 | ज़ोडियाको | पेसी | | 1410098760.2225 | सालाना | 1 9 64 | | 1410098760.2225 | मेस | 03 | | 1410098760.2225 | जीरोनो | 10 | | 1410098760.2225 | कार्ड | 12 | + ----------------- + ------------ + -------------- + यह मेरी क्वेरी है,
SELECT submit_time, अधिकतम (यदि (field_name = 'nome', field_value, NULL)) नोम, मैक्स (यदि (field_name = मैक्स (यदि (फ़ील्ड_नाम = 'एननो', फ़ील्ड_वल्यू, नल)) एएसए, मैक्स (मैक) (जैसा कि (फील्ड_नाम = 'मेसे', फ़ील्ड_व्यू, नल) अगर (फ़ील्ड_नाम = 'कार्ड', फ़ील्ड_वल्यूए, नल)) एएस कार्ड, मैक्स (यदि (फ़ील्ड_नाम = 'स्थानीयता', फ़ील्ड_वल्यू, नल)) स्थानीयता के रूप में, मैक्स (यदि (फ़ील्ड_नाम = 'इंडीरिज्ओ', फ़ील्ड_वल्यू, नल)) मैसेज (यदि (फ़ील्ड_नाम = 'सेल्यूलर', फ़ील्ड_व्यू, यदि (फ़ील्ड_नाम = 'ईमेल', फ़ील्ड_वल्यू, नल)) ईमेल, अधिकतम (यदि (फ़ील्ड_नाव = 'टेलि', फ़ील्ड_वल्यूए, नल) NULL)) के रूप में एसएल सेलर द्वारा zhter9mu3cf7dbplugin_submits GROUP submit_time
यह सही काम करता है लेकिन अगर मैं जहां एक खंड का उपयोग
जहां field_name = 'card' और field_value = 12
सभी फ़ील्ड खाली हैं इसका समाधान करने के लिए कोई भी सुझाव?
समस्या यह है कि जब आप WHERE आपके
field_name = 'card' और field_value = 12
को फ़िल्टर करने के लिए आप एक पंक्ति वापस लौट सकते हैं।
आप मूल रूप से पंक्तियों को अन्य field_names
। आप अपने नमूना डेटा के साथ निम्नलिखित करके यह देख सकते हैं:
से चुनें * जहां से field_name = 'card' और field_value = 12
देखें। यह केवल field_name
और field_value
के साथ आपको पंक्तियों का अनुरोध करता है। अन्य कॉलमों में डाल करने के लिए और कुछ भी नहीं है ताकि आप रिक्त हो जाएं।
यदि आप submit_time
को वापस करना चाहते हैं, तो उसके समान field_name
और < कोड> क्षेत्र_माना आप फ़िल्टर कर रहे हैं, तो आप उपयोग कर सकते हैं:
SELECT submit_time, अधिकतम (यदि (field_name = 'nome', field_value, NULL)) नोम, मैक्स (यदि मैक्स (यदि (फ़ील्ड_नाम = 'सालाना', फ़ील्ड_व्यू, नल)) साल के रूप में (फ़ील्ड_नाम = 'गियोर्नो', फ़ील्ड_वल्यूए, नल)) एएस गियोर्नो, मैक्स (यदि (फ़ील्ड_नाम = 'मेसे', फ़ील्ड_व्यू, नल)) मैक्स (यदि (फ़ील्ड_नाम = 'कार्ड', फ़ील्ड_वल्यू, नल)) एएस कार्ड, मैक्स (यदि (फ़ील्ड_नाम = 'स्थानीयता', फ़ील्ड_वल्यूए, नल)) स्थानीयता के रूप में, अधिकतम (यदि (फ़ील्ड_नाम = 'इंडीरिज्ओ', फ़ील्ड_वल्यू, नल ) (यदि (फ़ील्ड_नाम = 'ईमेल', फ़ील्ड_वल्यू, NULL)) एएस ईमेल, मैक्स (यदि (फ़ील्ड_नाम = 'टेलि', फ़ील्ड_वल्यूए, नल)) एएस टेली, मैक्स (यदि (फ़ील्ड_नाम = 'सेल्यूलर' , फ़ील्ड_वल्यूए, नल)) सेल्युलर के रूप में प्रस्तुत करता है जहां से मौजूद है (से चुनें 1 से एफ होफ़ेफ़.फ़ील्ड_ना मुझे = 'कार्ड' और एफ.फ़ील्ड_वल्यू = '12' और एफ.submit_time = s.submit_time) GROUP BY submit_time;
देखें
Comments
Post a Comment