मेरे पर यह है:

row  name       company         cusaddr_1
1    Bob        Happy Valley    1 RIVER PARKWAY
2               Happy Valley    1 RIVER PARKWAY
3    Lorie      Pet supply      1 Falls Rd
4    Greg       Pet supply      1 Falls Rd
5               Pet supply      1 Falls Rd
6               A Best Auto     1 camp dr
7    Ron        1 Broadway Ave

मैं जो चाहता हूं वह पंक्तियों को 1,3,4,6,7 वापस करना है। मूल रूप से, मैं उन पंक्तियों का चयन कैसे कर सकता हूं जहां कंपनी का नाम है और डुप्लिकेट है लेकिन फिर भी पंक्तियों को पंक्ति 6 ​​की तरह रखें जहां कंपनी का केवल एक विकल्प है और कोई नाम नहीं है? यह एक्सेस 2013 है और मैंने इस तरह से यूनियन क्वेरी करते हुए टेबल बनाई:

select DISTINCT blName as name, company, cusaddr_1
from one_table
union all
select DISTINCT shName as name, company, cusaddr_1
from one_table
0
Raymond Anderson 9 सितंबर 2016, 21:12
आपके उदाहरण के लिए, क्या होगा यदि पंक्ति 2 में बॉब नाम हो?
 – 
Rene
9 सितंबर 2016, 21:45
तब मैं उनमें से केवल एक को देखना चाहूंगा
 – 
Raymond Anderson
9 सितंबर 2016, 23:07

1 उत्तर

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

मैं WHERE क्लॉज के साथ एक क्वेरी तैयार करूंगा कि क्या कंपनी के लिए रिक्त नाम वाली पंक्तियों में एक नाम के साथ एक और रिकॉर्ड है, और रिकॉर्ड को छोड़कर यदि ऐसा होता है:

WHERE (name is NOT NULL) or 
((name IS NULL) AND (company IN 
   (SELECT company FROM one_table GROUP BY company HAVING MAX(name) IS NULL)))

यदि आपको केवल उन कंपनियों के लिए एक पंक्ति वापस करने की आवश्यकता है जिनके पास केवल रिक्त नाम हैं तो मैं पंक्ति संख्या के विरुद्ध WHERE क्लॉज बनाउंगा:

WHERE (name is NOT NULL) or 
((name IS NULL) AND (row In 
(SELECT Min(row) FROM one_table GROUP BY company HAVING MAX(name) Is Null)))
0
JJ32 9 सितंबर 2016, 21:47
मेरी सूची यूनियन क्वेरी से बनाई गई है जहां यूनियनों से 'नाम' बनाया गया है (सूची के बाद एसक्यूएल देखें) मैं यूनियन क्वेरी से बनाए गए 'नाम' के साथ आपके विचार का उपयोग कैसे कर सकता हूं?
 – 
Raymond Anderson
9 सितंबर 2016, 23:15
आप यूनियन क्वेरी से मेक टेबल क्वेरी का उपयोग कर सकते हैं और फिर उस तालिका के विरुद्ध क्वेरी में WHERE क्लॉज डाल सकते हैं। यदि आप ऐसा नहीं करना चाहते हैं तो आप तालिका के नाम में यूनियन क्वेरी को इस प्रकार प्रतिस्थापित कर सकते हैं: चुनें * से ([यूनियन क्वेरी यहां]) तालिका 1 जहां ... आपको one_table के लिए एक ही प्रतिस्थापन करना होगा। सबक्वेरी भी।
 – 
JJ32
9 सितंबर 2016, 23:18