मेरे पास एक मेज है जिसे मैं प्रत्येक समूह के लिए नवीनतम प्रविष्टि प्राप्त करना चाहता हूं। यहाँ तालिका है:
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 |
अद्यतन मैंने सिर्फ "लागू" का उपयोग करना सीखा, जिससे इस तरह की समस्याओं का समाधान करना आसान हो जाता है।