php - MySQL - Count questionnaire answers. -


पृष्ठभूमि जानकारी

मेरे पास निम्न तालिका संरचना है:

  प्रतिभागियों - आईडी, ईमेल, संगठन_प्रकाश_आईडी, नौकरी_ओल_आईडी उत्तर - आईडी, पार्टनर_आईड, प्रश्न_आईडी, उत्तर- प्रश्न, आईडी, प्रश्न, प्रश्न_गेंद   

दो अन्य तालिकाओं, संगठन प्रकार और नौकरी की भूमिकाएं हैं एक आईडी और एक नाम जो कि ऊपर की तालिकाओं में उल्लेखित है।

तालिकाओं को जब कोई प्रश्नावली में भरता है तब से डेटा को पकड़ता है (प्रत्येक सवाल का जवाब हाँ या कोई जवाब नहीं) प्रत्येक प्रश्न भी दो श्रेणियों में से एक (question_category फ़ील्ड द्वारा निर्दिष्ट) में पड़ता है।

जब कोई प्रश्नोत्तरी पूरा करता है, तो यह प्रतिभागियों तालिका में एक रिकॉर्ड बनाता है और प्रत्येक के लिए सवाल यह उत्तर तालिका में एक रिकार्ड बनाता है।

समस्या

मुझे हां जवाब और प्रत्येक प्रश्न के लिए कोई जवाब नहीं,

उदाहरण के लिए, अगर मैं जानना चाहता हूं कि कितने लोगों ने हां वोट दिया और कितने वोट नहीं थे संगठन प्रकार x का हिस्सा, मुझे एक प्रश्न पूछना चाहिए:

  प्रत्येक प्रश्न के सभी उत्तरों की गणना करें, जहां प्रतिभागी का x का एक संगठन_प्रकार_आईडी है, उत्तर समूह द्वारा   

इसे थोड़ा और भ्रामक बनाने के लिए, मैं यह भी चाहता हूं कि पंक्ति को भी शामिल किया जाए, भले ही उस विशिष्ट प्रश्न के लिए अभी तक कोई जवाब नहीं है। उदाहरण के लिए, मेरे पास प्रश्न आईडी के लिए उत्तर हो सकता है, लेकिन किसी प्रतिभागी से कोई भी नहीं जो संगठन का एक हिस्सा है। मैं चाहता हूं कि सवाल एक पंक्ति के रूप में लौट आए, लेकिन 'उत्तर गिनती' कॉलम में 0 के साथ।

क्या मेरी टेबल यहाँ समस्या की संरचना है या क्या ये वाकई भ्रामक प्रश्न है? अब तक मैं निम्नलिखित प्रश्न का उपयोग कर रहा हूं, और उसके परिणामों को PHP के साथ पाशन करने के लिए यह जांचने के लिए कि क्या यह संगठन या नौकरी की भूमिका का हिस्सा है, जिसे मैं चाहता हूं, लेकिन आदर्श रूप से मैं इसे MySQL में सब करना चाहता हूं। `पूर्वोत्तर> प्रश्न से 'चुनें' से 'उत्तर' पर उत्तर दें।` प्रश्न '_````` प्रश्न' '`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` अग्रिम धन्यवाद!

इसे आज़माएं, < / p>

  SELECT questions.id, questions.question, count (उत्तर.आईडी) as totalAns, Sum (Case जब participants.id रिक्त नहीं है तब 1 अन्य 0 समाप्ति) WithPart, Sum (Case) answers.answer = 'हाँ' फिर 1 अन्य 0 समाप्ति) YesAns के रूप में, योग (जब उत्तर answer.answer = 'नहीं' तब 1 अन्य 0 समाप्ति) के रूप में सवालों के उत्तर से जवाब छोड़ दें जवाब पर जवाब जोड़ें। प्रश्नोत्तरी_आईडी = questions.id left JOIN प्रतिभागियों पर प्रतिभागियों.आईडी = जवाब। पेपरिसिपेंट_आईडी और प्रतिभागियों। संगठन। टाइप करें। प्रश्न, प्रश्न। प्रश्न, प्रश्न। प्रश्न    

Comments

Popular posts from this blog

c++ - Cmake produces file extensions in static library archives -

c# - Roxy file manager in MVC doesn't accept session path -

c# - XML - Serialize class - Some questions -