मैं आम तौर पर यहां से युक्तियां और विचार चुनता हूं और कभी-कभी इससे अद्भुत चीजों का निर्माण समाप्त करता हूं!
आज, (अच्छी तरह से पिछले एक सप्ताह के लिए कहें), मैं एक्सेस में डेटा की रैंकिंग और मेरी योग्यता के साथ टंकण कर रहा हूं, मुझे उम्मीद नहीं थी कि मैं कुछ इतना जटिल करने जा रहा था इसे समझने के लिए मुझे एक सप्ताह ले लो! के रूप में जटिल विधि का विरोध करने के
- https://usefulgyaan.wordpress.com/2013/04/23/ranking-in-ms-access/ (देखा कि चतुर '> =' हिस्सा है, और आत्म मिलती कमाल ... यह मुझे मदद की सिर्फ एक क्वेरी से मेरी समाधान का निर्माण करने,: मैं दो मुख्य साइटों से titbits उठाया? उपरोक्त सुझाव दिया गया है (आपको अस्वीकार नहीं कर रहा है ... बस इसे अभी नहीं करना चाहता था; जब मैं बड़ा डेटा प्राप्त कर सकता हूं तो मैं इसे भी आजमा सकता हूं ...)
- यहां पर पॉल एबॉट से ऊपर (' और tbl.dept = tbl2.dept ') ... मैं रैंकिंग के बाद खो गया था क्योंकि मैं रख रहा था और वर्ष 1 = आदि, तो रैंकिंग केवल उप-सेट के लिए हो रही है, आपने सही अनुमान लगाया है, जब वर्ष 1 =! मेरे पास कई अलग-अलग परिदृश्य थे ...
ठीक है, मैंने आंशिक रूप से योगदानकर्ताओं का धन्यवाद करने के लिए यह कहानी दी है, क्योंकि मैंने जो किया वह रैंकिंग के सबसे जटिल में से एक है जो मुझे लगता है कि लगभग किसी भी स्थिति में आपकी मदद कर सकता है, और जब से मैं दूसरों से लाभान्वित हूं, मैं यहां साझा करना चाहता हूं जो मुझे उम्मीद है कि दूसरों को भी फायदा हो सकता है।
मुझे माफ़ कर दो कि मैं अपनी टेबल संरचनाओं को यहां पोस्ट करने में सक्षम नहीं हूं, यह बहुत से संबंधित तालिकाओं है। मैं केवल क्वेरी पोस्ट करूंगा, इसलिए यदि आपको आवश्यकता है तो आपको अपनी तरह की क्वेरी के साथ समाप्त करने के लिए अपनी टेबल विकसित कर सकते हैं। लेकिन यहां मेरा परिदृश्य है:
आपके पास स्कूल में छात्र हैं। वे कक्षा 1 से 4 तक जाते हैं, या तो स्ट्रीम ए या बी में हो सकते हैं, या कोई भी वर्ग बहुत छोटा होने पर नहीं हो सकता है। वे प्रत्येक 4 परीक्षाएं लेते हैं (यह हिस्सा अब महत्वपूर्ण नहीं है), इसलिए आपको मेरे मामले के लिए कुल स्कोर मिलता है। बस। हुह ??
ठीक है।
हम
सभी छात्रों को कभी इस स्कूल के माध्यम से पारित जो • की रैंकिंग में जानना चाहते हैं (सबसे अच्छा कभी छात्र)
एक विशेष शैक्षणिक वर्ष के सभी छात्रों • (के छात्र: उन्हें इस तरह से रैंक की सुविधा देता है वर्ष)
• किसी विशेष वर्ग के छात्र (लेकिन याद रखें कि एक छात्र सभी कक्षाओं के माध्यम से पारित हो जाएगा, इसलिए मूल रूप से अलग-अलग वर्षों के लिए उन वर्गों में से प्रत्येक में उनकी रैंक) यह सामान्य रैंकिंग है जो रिपोर्ट में दिखाई देती है कार्ड
अपनी स्ट्रीम में
• छात्रों (टिप्पणी लागू होता है ऊपर)
• मैं भी जनसंख्या जिसके खिलाफ हम प्रत्येक श्रेणी
में इस छात्र स्थान पर रहीं जानना चाहते हैं ... एक मेज/क्वेरी में सभी। अब आप बिंदु प्राप्त करते हैं?
(मुझे आमतौर पर मुझे संदेश देने के लिए डेटाबेस/प्रश्नों में से अधिकतर 'प्रोग्रामिंग' करना पसंद है और कोड की मात्रा को कम करने के लिए मुझे बाद में सही करना होगा। मैं वास्तव में इस क्वेरी का उपयोग नहीं करूँगा आवेदन :), लेकिन यह मुझे पता है कि कहाँ और कैसे क्वेरी यह से आया करने के लिए अपने मानकों को भेजने के लिए, और क्या परिणाम मेरे RDLC में की उम्मीद करने)
आप चिंता है, यहाँ यह है मत करो:
SELECT Sc.StudentID, Sc.StudentName, Sc.Mark,
(SELECT COUNT(Sch.Mark) FROM [StudentScoreRankTermQ] AS Sch WHERE (Sch.Mark >= Sc.Mark)) AS SchoolRank,
(SELECT Count(s.StudentID) FROM StudentScoreRankTermQ AS s) As SchoolTotal,
(SELECT COUNT(Yr.Mark) FROM [StudentScoreRankTermQ] AS Yr WHERE (Yr.Mark >= Sc.Mark) AND (Yr.YearID = Sc.YearID)) AS YearRank,
(SELECT COUNT(StudentID) FROM StudentScoreRankTermQ AS Yt WHERE (Yt.YearID = Sc.YearID)) AS YearTotal,
(SELECT COUNT(Cl.Mark) FROM [StudentScoreRankTermQ] AS Cl WHERE (Cl.Mark >= Sc.Mark) AND (Cl.YearID = Sc.YearID) AND (Cl.TermID = Sc.TermID) AND (Cl.ClassID=Sc.ClassID)) AS ClassRank,
(SELECT COUNT(StudentID) FROM StudentScoreRankTermQ AS C WHERE (C.YearID = Sc.YearID) AND (C.TermID = Sc.TermID) AND (C.ClassID = Sc.ClassID)) AS ClassTotal,
(SELECT COUNT(Str.Mark) FROM [StudentScoreRankTermQ] AS Str WHERE (Str.Mark >= Sc.Mark) AND (Str.YearID = Sc.YearID) AND (Str.TermID = Sc.TermID) AND (Str.ClassID=Sc.ClassID) AND (Str.StreamID = Sc.StreamID)) AS StreamRank,
(SELECT COUNT(StudentID) FROM StudentScoreRankTermQ AS St WHERE (St.YearID = Sc.YearID) AND (St.TermID = Sc.TermID) AND (St.ClassID = Sc.ClassID) AND (St.StreamID = Sc.StreamID)) AS StreamTotal,
Sc.CalendarYear, Sc.Term, Sc.ClassNo, Sc.Stream, Sc.StreamID, Sc.YearID, Sc.TermID, Sc.ClassID
FROM StudentScoreRankTermQ AS Sc
ORDER BY Sc.Mark DESC;
आपको ऐसा कुछ प्राप्त करना चाहिए:
छात्र आईडी | StudentName | मार्क | SchoolRank | SchoolTotal | YearRank | YearTotal | ClassRank | ClassTotal | StreamRank | StreamTotal | वर्ष | टर्म | कक्षा | स्ट्रीम
1 | जेन | 200 | 1 | 20 | 2 | 12 | 1 | 9 | 1 | 5 | 2017 | I | 2 | ए
2 | टॉम | 199 | 2 | 20 | 1 | 12 | 3 | 9 | 1 | 4 | 2016 | मैं | 1 | बी
उपयोग विभाजक (|) तालिकाओं के बारे में परिणाम तालिका
बस एक विचार फिर से संगठित करने, प्रत्येक छात्र को एक वर्ग से संबंधित कर दिया जाएगा। प्रत्येक वर्ग वर्षों से संबंधित है। प्रत्येक धारा एक वर्ग से संबंधित है। प्रत्येक शब्द एक वर्ष से संबंधित है। प्रत्येक परीक्षा एक शब्द और छात्र और एक वर्ग और एक वर्ष से संबंधित है; एक छात्र 2016 में कक्षा 1 ए में हो सकता है और 2017 में कक्षा 2 बी तक चला सकता है ...
मुझे यह भी एक बीटा परिणाम जोड़ने दें, मैंने इसे पर्याप्त रूप से परीक्षण नहीं किया है और मेरे पास अभी तक कोई अवसर नहीं है प्रदर्शन देखने के लिए बहुत सारे डेटा बनाएं। इस पर मेरी पहली नज़र ने मुझे बताया कि यह अच्छा है। इसलिए यदि आपको कारण या अलर्ट मिलते हैं तो आप मेरे रास्ते को इंगित करना चाहते हैं, तो कृपया टिप्पणियों में ऐसा करें ताकि मैं सीख सकूं!
बस इतना आसान! – PowerUser
क्या यह उन्हें सही तरीके से आदेश देता है, यद्यपि? दिलचस्प - पता नहीं था एक्सेस यह कर सकता है। क्या संस्करण, कृपया? साथ ही, जब तक आप डेटाबेस में कोई फ़ील्ड अपडेट नहीं करते हैं, तो आप जितनी चाहें उतनी बार इसे चलाने जा रहे हैं। –