मैं एक ही तालिका में अन्य पंक्तियों की उपस्थिति के आधार पर SQL सर्वर 2000/2005 तालिका चर से पंक्तियों को हटाना चाहता हूं (सभी 0 गिनती पंक्तियों को हटाएं यदि गैर-0 गिनती है पंक्ति एक ही तारीख के साथ मौजूद है)। यहाँ एक सरल उदाहरण है कि केवल हटा देना चाहिए पंक्ति पहले जोड़ा है:स्टेटमेंट से हटाए गए उपनाम में उपनाम
declare @O table (
Month datetime,
ACount int NULL
)
insert into @O values ('2009-01-01', 0)
insert into @O values ('2009-01-01', 1)
insert into @O values ('2008-01-01', 1)
insert into @O values ('2007-01-01', 0)
delete from @O o1
where ACount = 0
and exists (select Month from @O o2 where o1.Month = o2.Month and o2.ACount > 0)
समस्या यह है कि मैं एसक्यूएल सर्वर तालिका चर के O1 उर्फ स्वीकार करने के लिए नहीं मिल सकता है (और मुझे लगता है कि एक उपनाम की वजह से आवश्यक है "o1.Month = o2.Month
" मिलान क्षेत्र के नाम)। त्रुटि है:
संदेश 102, स्तर 15, राज्य 1, रेखा 11
गलत वाक्य रचना के पास 'O1'।
वाह, इस वाक्यविन्यास के बारे में नहीं पता था! अगर आपने छवि को चिपकाया नहीं है, तो मैंने इसे अमान्य के रूप में खारिज कर दिया होगा। क्या यह SQL2000 या केवल SQL Server 2005 पर काम करता है? मैं अभी घर पर हूं इसलिए सीधे सत्यापित नहीं कर सकता। –
इसे एसक्यूएल 2k/2k5/2k8 पर काम करना चाहिए (स्क्रीनशॉट पर 2k8 पर इसका परीक्षण किया गया था) - एसक्यूएल 7 के साथ कभी निपटा नहीं है, इसलिए 7 के बारे में सुनिश्चित नहीं है – Sung