नीचे अपडेट करें।बाहरी जॉइन परिणाम में पंक्तियां गायब हैं, कोई भी खंड (वर्कअराउंड पाया गया)
मैं एक आत्म बाहरी करने के लिए कोशिश कर रहा हूँ में शामिल होने कि, प्रत्येक रिकॉर्ड के लिए, रिटर्न यह और अन्य सभी रिकॉर्ड यह तुलना में बाद में उत्पन्न, या शून्य अगर वह खुद को नवीनतम रिकॉर्ड है। यह मेरा एसक्यूएल कोड है:
SELECT A.[CR#], A.REGIS_STATUSDATE, B.REGIS_STATUSDATE
FROM CR_ADMIN_REGIS_STATUS A LEFT OUTER JOIN CR_ADMIN_REGIS_STATUS B
ON A.[CR#]=B.[CR#] AND A.REGIS_STATUSDATE < B.REGIS_STATUSDATE
मेरे मुद्दा यह है कि जब किसी दिए गए [सीआर #] के लिए, A.REGIS_STATUSDATE एक अधिकतम है (और इसलिए B.REGIS_STATUSDATE यह से बड़ा नहीं हो सकता है) है, कि पंक्ति मेरे परिणाम में शामिल नहीं है।
उदाहरण के लिए, यदि CR_ADMIN_REGIS_STATUS इस तरह दिखता है:
CR# A.REGIS_STATUSDATE B.REGIS_STATUSDATE
1 5/1/12 5/2/12
1 5/1/12 5/3/12
1 5/2/12 5/3/12
2 5/1/12 5/2/12
यह देखते हुए कि:
CR# REGIS_STATUSDATE
1 5/1/12
1 5/2/12
1 5/3/12
2 5/1/12
2 5/2/12
मैं उम्मीद
CR# A.REGIS_STATUSDATE B.REGIS_STATUSDATE
1 5/1/12 5/2/12
1 5/1/12 5/3/12
1 5/2/12 5/3/12
1 5/3/12 NULL
2 5/1/12 5/2/12
2 5/2/12 NULL
इसके बजाय मैं इस मिल होने के लिए मेरी क्वेरी का परिणाम मेरी क्वेरी एक बाएं बाहरी जॉइन है, और मेरे पास कोई WHERE क्लॉज नहीं है, मुझे उम्मीद है कि मेरी मूल तालिका से सभी पंक्तियां होंगी नतीजतन, लेकिन यह मामला नहीं है। मुझे यहां क्या समझ नहीं आ रहा है?
संपादित करें: इस Access में 2007
अद्यतन: मैं देखना क्या हुआ अगर मैं एक अलग तालिका में तालिका CR_ADMIN_REGIS_STATUS के वर्गों की नकल की और उस के खिलाफ अपनी क्वेरी चलाने पर क्या होगा फैसला किया। यहां तक कि जब मैंने सीधे पूरी तालिका को पूरी तरह से कॉपी किया था (मैन्युअल रूप से) क्वेरी काम किया! यह केवल तब ही मामला था जब वास्तव में प्रतिलिपि बनाना और चिपकाना, जब मैं एक और तालिका में * चयन करना चाहता हूं तो समस्या बनी रहेगी।
अंततः मुझे लगता है कि अगर मैं
SELECT *
FROM CR_ADMIN_REGIS_STATUS
UNION ALL SELECT TOP 1 *
FROM CR_ADMIN_REGIS_STATUS;
के खिलाफ क्वेरी भाग गया बल्कि CR_ADMIN_REGIS_STATUS से भी मेरी क्वेरी वांछित परिणाम लौटे खोज की। अजीब। मेरे पास एक समान तालिका के खिलाफ भी एक समान क्वेरी थी जो शुरुआत से काम करती थी, इसलिए ऐसा लगता है कि यह एक तालिका तक सीमित था।
कौन सा डीबीएमएस प्रयोग कर रहे हैं? पहुंच? –
ठीक है, मुझे अपने सिर को खरोंचने के साथ-साथ –
एमएस एक्सेस 2010 में आपकी क्वेरी चल रही है, मुझे आपका अपेक्षित परिणाम मिल गया है। – Fionnuala