मैं एक क्वेरी डिज़ाइन करना चाहता हूं जो मूल रूप से "Not Like "*x*" की एक बड़ी राशि करता है, उन सभी चीजों को छोड़कर जो मैं नहीं चाहता कि क्वेरी किसी अन्य कॉलम में हो।

मुझे पता है कि मैं इसे एक बार में केवल मानदंड का उपयोग करके और "Not like "*x*" निर्दिष्ट करके कर सकता हूं, लेकिन मुझे नहीं पता कि डेटा के पूरे कॉलम के लिए not like कैसे करें।

तो, लंबा संस्करण यह है कि मेरे पास कॉर्पोरेट नेटवर्क पर कई अलग-अलग सर्वरों पर होस्ट किए गए कैमरों का एक समूह है। इनमें से प्रत्येक कैमरा एक ही सबनेट पर है और सब कुछ लेकिन आईपी पते का अंतिम ऑक्टेट सर्वर से मेल खाता है। अब, मैंने पहले से ही एक क्वेरी में एक फ़ील्ड बना लिया है जो मेरे आईपी के अंतिम ऑक्टेट को ट्रिम कर देता है, इसलिए अब मेरे पास मूल रूप से एक पूर्व-निर्मित आईपी रेंज है जहां कैमरे संभवतः हो सकते हैं। हालांकि, मेरे पास प्रत्येक कैमरे की सटीक सूची नहीं है - और ऐसा करने का वास्तव में कोई तेज़ तरीका नहीं है।

मेरे पास उन मुद्दों की एक सूची है जिन पर मैं काम कर रहा हूं और मैंने देखा है कि कुछ कैमरे मुद्दों की सूची में आ रहे हैं (मूल रूप से एक तालिका जिसमें आईपी पते का एक समूह शामिल है)। मैं रिपोर्ट में प्रदर्शित होने से कैमरों के सभी संभावित उदाहरणों को हटाना चाहता/चाहती हूं।

मैंने ऐसे डिज़ाइन देखे हैं जहाँ लोग स्तंभों की तरह तुलना करने में सक्षम हुए हैं, लेकिन मैं इसके विपरीत करना चाहता हूँ। मैं एक क्वेरी जेनरेट करना चाहता हूं जहां इसमें कैमरा कॉलम में कुछ भी नहीं है।

इसके लिए, मैं उस क्वेरी को कॉल करूंगा जहां मेरे पास कैमरा रेंज Camera Ranges और फ़ील्ड Camera Range है।

क्या कोई तरीका है जिससे मैं इसे पूरा कर सकता हूं?

मैं क्वेरी को आसान बनाने के लिए एक प्रश्न तैयार करने या अपनी तालिका को बदलने के लिए तैयार हूं।

1
howradisit 30 अप्रैल 2019, 01:03

1 उत्तर

सबसे बढ़िया उत्तर

उत्तर के समान मैंने यहां प्रदान किया है, बजाय इसके कि आप एक नकारात्मक चयन का उपयोग करें जिसमें आप परीक्षण कर रहे हैं कि क्या मान किसी रिकॉर्ड के पास है किसी अन्य डेटासेट में किसी भी रिकॉर्ड को पसंद नहीं है, तो आसान तरीका उन लोगों से मिलान करना है जो हैं डेटासेट की तरह हैं और उन रिकॉर्ड्स को कोई मेल नहीं के साथ लौटाएं।

इसे पूरा करने के लिए, आप where क्लॉज में एक left join के साथ एक is null कंडीशन का इस्तेमाल कर सकते हैं, उदाहरण के लिए:

select 
    MainData.*
from 
    MainData left join ExclusionData on 
    MainData.TargetField like ExclusionData.Pattern
where 
    ExclusionData.Pattern is null

या, यदि पैटर्न फ़ील्ड में पहले से वाइल्डकार्ड ऑपरेटर नहीं हैं:

select 
    MainData.*
from 
    MainData left join ExclusionData on 
    MainData.TargetField like '*' & ExclusionData.Pattern & '*'
where 
    ExclusionData.Pattern is null

ध्यान दें कि MS Access क्वेरी डिज़ाइनर में ऐसे परिकलित जॉइन का प्रतिनिधित्व करने में सक्षम नहीं होगा, लेकिन MS Access द्वारा उपयोग किया जाने वाला JET डेटाबेस इंजन अभी भी मान्य SQL की व्याख्या और निष्पादन करने में सक्षम होगा।

0
Lee Mac 29 अप्रैल 2019, 22:24