MySQL

2015-05-25 5 views
5

का उपयोग कर हाईचर्ट्स के लिए जेएसओएन डेटा महीनेवार को स्वरूपित करना दो टेबल हैं। पहली तालिका मुझे एक नर्स के तहत गर्भवती महिलाओं की संख्या दिखाती है। ध्यान रखें कि कई नर्सें हैं जो एक डॉक्टर के अधीन आती हैं। प्रत्येक गर्भवती महिला को एक नर्स में मैप किया जाता है और प्रत्येक नर्स को एक डॉक्टर को मैप किया जाता है। >नर्स - ->डॉक्टर तो पदानुक्रमMySQL

गर्भवती महिलाओं है।

अब, प्रत्येक गर्भवती महिला की पंजीकरण तिथि है।

दूसरी तालिका मुझे डॉक्टरों को नर्सों का मानचित्रण दिखाती है।

अब, मेरी पूछताछ डॉक्टरों के विवरण और प्रत्येक डॉक्टर के लिए महीने (जनवरी से दिसंबर तक) गर्भवती महिलाओं की गिनती दर्ज की जानी चाहिए। तो मेरा अंतिम परिणाम जेएसओएन प्रारूप में होना चाहिए जैसा कि नीचे लागू किया गया है। इस प्रारूप को मुझे हाईचर्ट्स के लिए इसकी आवश्यकता है।

और अगर वहाँ किसी माह विशेष नहीं गर्भवती महिलाओं से किया गया है, इसे वापस चाहिए 0

[{ 
     name: 'Doctor ID', 
     data: [7.0(Jan), 6.9(Feb), 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6(Dec)], 

     name: 'Doctor ID 2', 
     data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] 
    }, { 
     name: 'Doctor Id 3', 
     data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0] 
    }] 

मैं निम्न क्वेरी की कोशिश की है, लेकिन मैं संरचना बनाने में सक्षम है, जब यह महीने के लिए आता है नहीं कर रहा हूँ।

SELECT preg_reg_other.preg_id,nurse_dets.doctor_id,preg_reg_other.reg_date 
from preg_reg_other,nurse_dets 
where preg_reg_other.nurse_id = nurse_dets.nurse_id 
and preg_reg_other.reg_date is not null 
and nurse_dets.doctor_id= 1031 
order by preg_reg_other.reg_date asc 

संपादित

दो तालिकाओं के रूप में इस प्रकार है

तालिका 1 हैं: nurse_dets

nurse_id population doctor_id nurse_name 

तालिका 2: preg_reg_other

preg_id nurse_id reg_date 
+0

क्या आप कृपया टेबल का वर्णन कर सकते हैं –

+0

@Joe_Tz तालिका कॉलम के नामों के लिए संपादन अनुभाग देखें, उम्मीद है कि यह मदद करता है :) –

+0

कृपया इस लिंक को चेक करें http://stackoverflow.com/questions/14019964/how-to-group-by-year-and-month-in-mysql –

उत्तर

2

हर डॉक्टर के लिए इस तरह एक प्रश्न करना:

मैं इस तरह से करना होगा हर महीने के लिए,

/* get all pregrant women for a doctor, group by month and count records */ 
SELECT MONTH(p.reg_date), COUNT(*) 
FROM nurse_dets n 
INNER JOIN preg_reg_other p 
    ON n.nurse_id = p.nurse_id 
WHERE n.doctor_id = 1301 
AND n.reg_date IS NOT NULL 
GROUP BY MONTH(p.reg_date) 
ORDER BY p.reg_date ASC 

यह आपको दे देंगे, आईडी के साथ डॉक्टर के साथ जुड़े गर्भवती महिलाओं की गिनती 1301

अब, आप एक प्रश्न इस तरह हर डॉक्टर के लिए हर चरण में कर सकता है और,, एक अलग सेरी निर्माण आप चार्ट के लिए

अंत में आप अपने ग्राहक के लिए अपने सभी श्रृंखला सरणी गुजरती हैं और Highcharts के लिए डेटा लाने होगा

संपादित

एक litte अधिक जटिल, समूह के रूप में किसी भी मूल्य वापस नहीं करता द्वारा अगर वहाँ कम से कम एक रिकॉर्ड नहीं है महीनों में जहां कोई गर्भवती महिलाओं के लिए देखते हैं 0 का मूल्य हो रही गिनती करने के लिए।इस तरह का प्रयास करें:

SELECT months.num, COUNT(p.preg_id) 
FROM 
    (SELECT 1 AS num 
    UNION ALL SELECT 2 
    UNION ALL SELECT 3 
    UNION ALL SELECT 4 
    UNION ALL SELECT 5 
    UNION ALL SELECT 6 
    UNION ALL SELECT 7 
    UNION ALL SELECT 8 
    UNION ALL SELECT 9 
    UNION ALL SELECT 10 
    UNION ALL SELECT 11 
    UNION ALL SELECT 12) months 
LEFT JOIN preg_reg_other p 
    ON months.num = MONTH (p.reg_date) 
INNER JOIN nurse_dets n 
    ON n.nurse_id = p.nurse_id 
WHERE n.doctor_id = 1301  
GROUP BY MONTH(months.num) 
ORDER BY months.num ASC 

सबसे पहले हम स्वयं 12 महीने के साथ एक मेज का निर्माण और अन्य तालिकाओं के साथ "बाएं में शामिल होने के", इसलिए अगर कोई रिकॉर्ड नहीं है, अंतिम गिनती 0

में परिणाम चाहिए

मैंने क्वेरी का परीक्षण नहीं किया है, लेकिन मुझे उम्मीद है कि आपको

+0

क्वेरी अच्छी तरह से काम करती है सिवाय इसके कि एक महीने की प्रविष्टियों के लिए जहां गर्भवती महिलाओं की संख्या '0' है, तालिका किसी भी मूल्य को आउटपुट नहीं कर रही है। क्या आप इसे ठीक करने में मेरी सहायता कर सकते हैं कृपया –

+1

ऊपर दिए गए मेरे संपादन की जांच करें – Moppo