[ad_1]
मैं एक मौजूदा क्वेरी को अपडेट करने का प्रयास कर रहा हूं, जिसमें 2 सबक्वेरी शामिल हैं, जिनमें से प्रत्येक एक अलग गिनती की गणना कर रही है। मुख्य क्वेरी अपने आप ठीक से चलती है और मैं 2 सबक्वेरीज़ को अपने आप चलाने में सक्षम हूं, हालांकि, जब मैं उनसे जुड़ने का प्रयास करता हूं, तो मुझे एक सिंटैक्स त्रुटि “मिसिंग कीवर्ड” मिल रही है।
यहाँ मेरी मुख्य क्वेरी है. यह 3 अलग-अलग तालिकाओं से निरीक्षण डेटा लेता है और हर बार निरीक्षण कार्यक्रम चलाए जाने पर दिखाने के लिए इसे कार्य संख्या के आधार पर सारांशित करता है। निरीक्षण डेटा को सुविधा प्रकार (छेद, ज़ैक्सिस या कोने) के आधार पर विभिन्न तालिकाओं में विभाजित किया गया है। प्रत्येक कार्य संख्या के परिणाम इन 3 तालिकाओं या एकाधिक तालिकाओं में से केवल 1 में पाए जा सकते हैं। इस वजह से, मुख्य क्वेरी में एक MIN फ़ंक्शन होता है, इसलिए मैं प्रति कार्य संख्या में एक प्रविष्टि के साथ समाप्त होता हूं। ध्यान देने वाली एक और बात यह है कि प्रत्येक तालिका में एक ही प्रकार की एक या अधिक जांच विशेषताएं हो सकती हैं, अंतर एक अलग स्थान पर हो सकता है।
SELECT MIN(t.timeofentry) as timeofentry, t.machine, t.tape, t.partnumber, t.spindle, t.jobnumber from ( SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONHOLE WHERE HOLENUMBER = 1 AND TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' UNION SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONZAXIS WHERE ZHIT = 1 AND TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' UNION SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONCORNER WHERE TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' )t GROUP BY t.machine, t.tape, t.partnumber, t.spindle, t.jobnumber ORDER BY timeofentry
यह डेटा लौटाता है जैसे:
टाइमऑफएंट्री, मशीन, टेप, पार्टनंबर, स्पिंडल, जॉबनंबर
01/02/2024 11:13:50 अपराह्न, एनसी-537, 4479, एबीसी, एलएच, 75576
01/02/2024 11:25:50 अपराह्न, एनसी-537, 4479, एबीसी, आरएच, 75577
अब मैं कार्य संख्या के लिए निरीक्षण की गई सुविधाओं की कुल संख्या और उस कार्य संख्या के लिए सहनशीलता से बाहर की सुविधाओं की कुल संख्या दोनों को दिखाने के लिए क्वेरी में 2 गिनती जोड़ना चाहता हूं। कुछ इस तरह:
प्रवेश का समय, मशीन, टेप, पार्टनंबर, स्पिंडल, जॉबनंबर, विफल, कुल
01/02/2024 11:13:50 अपराह्न, एनसी-537, 4479, एबीसी, एलएच, 75576, 0, 4
01/02/2024 11:25:50 अपराह्न, एनसी-537, 4479, एबीसी, आरएच, 75577, 2, 4
यहां प्रत्येक के लिए उपप्रश्न दिए गए हैं। जिस पर विफल सुविधाएँ शामिल हैं, मुझे लगता है कि मुझे कहीं न कहीं COALESCE की आवश्यकता होगी क्योंकि हर कार्य में विफल सुविधाएँ नहीं होती हैं इसलिए कभी-कभी सबक्वेरी शून्य हो सकती है
इसमें विफल सुविधाओं की संख्या शामिल है:
select jobnumber, sum(fails)as TotalFails from( select jobnumber, count(*) as fails from probevalidationhole where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' and (xoutoftol = 'Yes' or youtoftol = 'Yes') group by jobnumber union select jobnumber, count(*) as fails from probevalidationzaxis where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' and Zoutoftol = 'Yes' group by jobnumber union select jobnumber, count(*) as fails from probevalidationcorner where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' and (xoutoftol = 'Yes' or youtoftol = 'Yes') group by jobnumber) group by jobnumber
इसमें सुविधाओं की कुल संख्या शामिल है:
select jobnumber, sum(features)as TotalFeatures from( select jobnumber, count(*) as features from probevalidationhole where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber union select jobnumber, count(*) as features from probevalidationzaxis where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber union select jobnumber, count(*) as features from probevalidationcorner where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber) group by jobnumber
मैंने क्या प्रयास किया है:
मैं यही कोशिश कर रहा था जब मुझे सिंटैक्स त्रुटि “मिसिंग कीवर्ड” मिली। मैं बस पहले कुल सुविधाएँ जोड़ने और फिर विफल सुविधाओं को जोड़ने का प्रयास कर रहा था, लेकिन मुझे काम करने के लिए कुल सुविधाएँ नहीं मिल पा रही थीं।
SELECT MIN(t.timeofentry) as timeofentry, t.machine, t.tape, t.partnumber, t.spindle, t.jobnumber, TF.totalfeatures from ( SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONHOLE WHERE HOLENUMBER = 1 AND TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' UNION SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONZAXIS WHERE ZHIT = 1 AND TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' UNION SELECT timeofentry, machine, tape, partnumber, spindle, jobnumber FROM PROBEVALIDATIONCORNER WHERE TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' )t left join (select jobnumber, sum(features)as TotalFeatures from( select jobnumber, count(*) as features from probevalidationhole where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber union select jobnumber, count(*) as features from probevalidationzaxis where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber union select jobnumber, count(*) as features from probevalidationcorner where TIMEOFENTRY between '01/01/2024 12:00:00 AM' and '01/12/2024 11:59:59 PM' and Machine = 'NC-537' group by jobnumber) group by jobnumber) as TF on t.jobnumber = TF.jobnumber GROUP BY t.machine, t.tape, t.partnumber, t.spindle, t.jobnumber, tf.totalfeatures ORDER BY timeofentry
समाधान 1
मैं यह समझ गया। यह एक मूर्खतापूर्ण टाइपो था. नीचे से चौथी पंक्ति में मेरे पास “टीएफ” था, बस “टीएफ” होना चाहिए था
[ad_2]
コメント