मेरे पास एक मेज है जिसे मैं प्रत्येक समूह के लिए नवीनतम प्रविष्टि प्राप्त करना चाहता हूं। यहाँ तालिका है:
DocumentStatusLogs तालिका
|ID| DocumentID | Status | DateCreated |
| 2| 1 | S1 | 7/29/2011 |
| 3| 1 | S2 | 7/30/2011 |
| 6| 1 | S1 | 8/02/2011 |
| 1| 2 | S1 | 7/28/2011 |
| 4| 2 | S2 | 7/30/2011 |
| 5| 2 | S3 | 8/01/2011 |
| 6| 3 | S1 | 8/02/2011 |
तालिका समूह में रखा जाएगा DocumentIDऔर के अनुसार क्रमबद्ध DateCreatedअवरोही क्रम में। प्रत्येक के लिए DocumentID, मैं नवीनतम स्थिति प्राप्त करना चाहता हूं।
मेरा पसंदीदा आउटपुट:
| DocumentID | Status | DateCreated |
| 1 | S1 | 8/02/2011 |
| 2 | S3 | 8/01/2011 |
| 3 | S1 | 8/02/2011 |
क्या प्रत्येक समूह से केवल शीर्ष पाने के लिए कोई समग्र कार्य है?
GetOnlyTheTopनीचे छद्म कोड देखें:SELECT DocumentID, GetOnlyTheTop(Status), GetOnlyTheTop(DateCreated) FROM DocumentStatusLogs GROUP BY DocumentID ORDER BY DateCreated DESCयदि ऐसा कोई फ़ंक्शन मौजूद नहीं है, तो क्या कोई ऐसा तरीका है जिससे मैं अपने इच्छित आउटपुट को प्राप्त कर सकता हूं?
- या पहली जगह पर, क्या यह अप्राकृतिक डेटाबेस के कारण हो सकता है? मैं सोच रहा हूं, क्योंकि मैं जो देख रहा हूं वह सिर्फ एक पंक्ति है, क्या यह
statusभी माता-पिता की तालिका में स्थित होना चाहिए ?
कृपया अधिक जानकारी के लिए मूल तालिका देखें:
करंट Documentsटेबल
| DocumentID | Title | Content | DateCreated |
| 1 | TitleA | ... | ... |
| 2 | TitleB | ... | ... |
| 3 | TitleC | ... | ... |
क्या पैरेंट टेबल इस तरह का होना चाहिए ताकि मैं आसानी से इसकी स्थिति तक पहुँच बना सकूँ?
| DocumentID | Title | Content | DateCreated | CurrentStatus |
| 1 | TitleA | ... | ... | s1 |
| 2 | TitleB | ... | ... | s3 |
| 3 | TitleC | ... | ... | s1 |
अद्यतन मैंने सिर्फ "लागू" का उपयोग करना सीखा, जिससे इस तरह की समस्याओं का समाधान करना आसान हो जाता है।