[ad_1]
أحاول تحديث استعلام موجود ليشمل استعلامين فرعيين يحسب كل منهما عددًا مختلفًا. يعمل الاستعلام الرئيسي بشكل جيد من تلقاء نفسه وقد تمكنت من تشغيل الاستعلامين الفرعيين بمفردهما، ومع ذلك، عندما أحاول الانضمام إليهما، يظهر لي خطأ في بناء الجملة “كلمة رئيسية مفقودة”.
هنا هو استفساري الرئيسي. يأخذ بيانات الفحص من 3 جداول منفصلة ويلخصها برقم المهمة لإظهار كل مرة تم فيها تشغيل برنامج الفحص. يتم تقسيم بيانات الفحص إلى جداول مختلفة بناءً على نوع الميزة (الثقوب أو المحور أو الزاوية). يمكن العثور على نتائج كل رقم وظيفة في جدول واحد فقط من هذه الجداول الثلاثة أو جداول متعددة. ولهذا السبب، هناك دالة 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 مساءً, NC-537, 4479, ABC, LH, 75576
01/02/2024 11:25:50 م, NC-537, 4479, ABC, RH, 75577
أريد الآن إضافة عددين إلى الاستعلام لإظهار إجمالي عدد الميزات التي تم فحصها لرقم الوظيفة وإجمالي عدد الميزات التي كانت خارج نطاق التسامح مع رقم الوظيفة هذا. شيء من هذا القبيل:
وقت الدخول، الآلة، الشريط، رقم القطعة، المغزل، رقم الوظيفة، الفاشل، الإجمالي
01/02/2024 11:13:50 م, NC-537, 4479, ABC, LH, 75576, 0, 4
01/02/2024 11:25:50 م, NC-537, 4479, ABC, RH, 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
اكتشفتها. لقد كان خطأ مطبعي غبي. في السطر الرابع من الأسفل كان لدي “باسم TF”، وكان ينبغي أن يكون مجرد “TF”
[ad_2]
コメント