मेरे प्रोग्राम के भीतर, मैं आने वाले डेटा का ऑडिट करता हूं, जो कि 4 प्रकार का हो सकता है। यदि डेटा सभी आवश्यक मानदंडों को पूरा करता है, तो तालिका तालिका में पंक्ति दर्ज होने के बाद संदेश प्रकार और टाइमस्टैम्प के साथ तालिका तालिका में सफलता के साथ संग्रहीत किया जाता है।एसक्यूएल - मैक्स के साथ डेटा के लिए अलग पंक्ति लौटने वाला टाइमस्टैम्प मान
ऑडिटिंग के साथ कनेक्शन समस्या उत्पन्न होने जैसी किसी चीज के कारण डेटा को त्रुटि के साथ तालिका में भी लिखा जा सकता है। कार्यक्रम इस डेटा की ऑडिटिंग करने का पुनः प्रयास करेगा, और यदि सफल हो तो सफल होने पर एक नई पंक्ति लिख जाएगी। तो आप देखते हैं कि अब मेरे पास डेटा के उस विशेष संदेश के लिए 2 पंक्तियां हैं, जिनमें सफलता है, एक त्रुटि है, दोनों अलग-अलग समय टिकटें हैं। (त्रुटि रिकॉर्ड की तुलना में सबसे हालिया टाइमस्टैंप है।)
एक तीसरा संदेश, अस्वीकार होता है और रिकॉर्डिंग लिखा जाता है यदि आने वाला डेटा आवश्यक मानक को पूरा नहीं करता है, फिर से एक टाइमस्टैम्प के साथ।
मैं क्या करना चाहता हूं, उच्चतम टाइमस्टैम्प के साथ प्रत्येक प्राप्त संदेश के लिए केवल रिकॉर्ड को वापस खींचने के लिए एक Sybase SQL क्वेरी लिखना है।
तो उपर्युक्त त्रुटि उदाहरण के साथ, मैं त्रुटि रिकॉर्ड वापस नहीं करना चाहता, केवल प्रक्रिया के पुन: प्रयास किए जाने से ही सफलतापूर्वक रिकॉर्ड रिकॉर्ड और सफलता थी।
मैं .. निम्नलिखित की तरह कुछ के बारे में सोचा था
SELECT distinct(*)
FROM auditingTable
WHERE timestamp = (SELECT MAX(timestamp) from auditingTable)
हालांकि मैं बारे में पता यह केवल वापस 1 रिकॉर्ड लाना होगा, पूरे तालिका में सबसे ज्यादा टाइमस्टैम्प के साथ।
मैं अपनी स्थिति के बावजूद प्राप्त प्रत्येक संदेश के लिए सबसे हालिया रिकॉर्ड कैसे प्राप्त कर सकता हूं ??
कोई भी विचार आपका स्वागत है!