/ / शामिल होने के लिए उपयोग की जाने वाली तालिका / क्वेरी के प्रकार के आधार पर अलग-अलग परिणाम शामिल करें - sql, ms-access

क्वेरी में शामिल हों जिसमें एसक्यूएल, एमएस-एक्सेस में शामिल होने के लिए उपयोग की जाने वाली तालिका / क्वेरी के प्रकार के आधार पर अलग-अलग परिणाम हैं

इस पहेली ने मुझे बहुत प्रभावित किया और मैं नहीं ढूंढ सकाकारण क्यों: 2010 में एक्सेस, मैं 2 ज्वाइन क्वेश्चन बनाता हूं। ज्वाइन 1: 1 बड़ा टेबल इनर जॉइन 1 कई क्षेत्रों पर उप क्वेरी का चयन करें। क्षेत्र में से एक तारीख है लेकिन में है संख्या प्रारूप यानी 201701 यह 100 रिकॉर्ड लौटाता है।

2 शामिल हों: एक ही मेज के साथ एक ही बड़ी तालिका आंतरिक रूप से उसी फ़ील्ड से जुड़ती है। केवल 1 में शामिल होने से अंतर दूसरी तालिका से बनाया गया है ऊपर से क्वेरी का चयन करें। यह 1000 से अधिक रिकॉर्ड देता है। यह है परिणाम मुझे उम्मीद है।

मैंने अलग-अलग तरीकों की कोशिश की और पाया कि तारीख क्षेत्र पैदा कर रहा है समस्या। एक बार जब मैं उस दिनांक फ़ील्ड (नवीनीकरण) को हटा देता हूं, तो दोनों क्वेरी से जुड़ जाते हैं उसी परिणाम को वापस करें।

एसक्यूएल


    SELECT POLICY, Date, Val(LEGAL) AS LEGALN, REGION
INTO New_Table
FROM [TABLE_A] INNER JOIN [FILTER]
ON ([TABLE_A].NETWORK = [FILTER].NETWORK)
AND ([TABLE_A].LEGAL = [Filter].LEGAL)
AND ([TABLE_A].REGION = [Filter].REGION)
AND ([TABLE_A].AF = [Filter].AF)
AND ([TABLE_A].ML = [Filter].ML)
AND ([TABLE_A].ELGIND = [Filter].ELGIND)
AND ([TABLE_A].OI = [Filter].OI)
AND ([TABLE_A].Policy = [Filter].Policy)
AND ([TABLE_A].SEGMENT = [Filter].SEGMENT)
AND ([TABLE_A].PRODTYPE = [Filter].PRODTYPE)
AND ([TABLE_A].RenewalDATE = [Filter].RenewalDATE)
WHERE (([TABLE_A].ASFactor) Is Not Null)
AND (([TABLE_A].ProjMed)<>9.9999)
AND (([TABLE_A].Proj_R)<>9.9999)

जब [फ़िल्टर] एक तालिका होती है, तो उपरोक्त सही परिणाम देगा।
जब [फ़िल्टर] एक चुनिंदा क्वेरी है, तो यह उत्पादन करेगागलत परिणाम। Table_A [फ़िल्टर] से काफी बड़ा है। अनिवार्य रूप से, उनके पास है फ़ील्ड में शामिल होने का एक समूह जो क्वेरी परिणाम में "टी शो" जीता तालिका पर जानकारी दिखाई जाएगी।

क्या कोई समझा सकता है कि यह कैसे संभव है?

उत्तर:

जवाब के लिए 0 № 1

आपके DOB फ़ील्ड में समान मान नहीं हो सकते, हालांकि वे दिखाई देते हैं।

सम्मिलित होने के बजाय, जोड़ने का प्रयास करें कहा पे खंड:

Where DateValue(a.DOB) = DateValue(b.DOB)

या:

Where DateDiff("d", a.DOB, b.DOB) = 0