[ad_1]
Tôi đang cố gắng cập nhật một truy vấn hiện có để bao gồm 2 truy vấn con, mỗi truy vấn con tính một số lượng khác nhau. Truy vấn chính tự chạy tốt và tôi có thể để 2 truy vấn phụ tự chạy, tuy nhiên, khi tôi cố gắng tham gia cùng chúng, tôi gặp lỗi cú pháp “thiếu từ khóa”.
Đây là truy vấn chính của tôi. Nó lấy dữ liệu kiểm tra từ 3 bảng riêng biệt và tóm tắt theo mã số công việc để hiển thị mỗi lần chạy chương trình kiểm tra. Dữ liệu kiểm tra được chia thành các bảng khác nhau dựa trên loại tính năng (lỗ, trục z hoặc góc). Kết quả cho mỗi mã số công việc có thể được tìm thấy chỉ ở 1 trong 3 bảng này hoặc nhiều bảng. Vì lý do này, đó là lý do tại sao có hàm MIN trong truy vấn chính nên tôi kết thúc bằng một mục nhập cho mỗi mã số công việc. Một điều cần lưu ý nữa là mỗi bảng có thể có một hoặc nhiều tính năng thăm dò cùng loại với sự khác biệt ở một vị trí khác.
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
Điều này trả về dữ liệu như:
Thời gian nhập, máy, băng, số bộ phận, trục chính, số công việc
02/01/2024 11:13:50 CH, NC-537, 4479, ABC, LH, 75576
02/01/2024 11:25:50 CH, NC-537, 4479, ABC, RH, 75577
Bây giờ tôi muốn thêm 2 số vào truy vấn để hiển thị cả tổng số tính năng được kiểm tra cho mã số công việc và tổng số tính năng vượt quá giới hạn cho mã số công việc đó. Một cái gì đó như thế này:
Thời gian nhập, máy, băng, số bộ phận, trục chính, số công việc, thất bại, tổng cộng
02/01/2024 11:13:50 CH, NC-537, 4479, ABC, LH, 75576, 0, 4
02/01/2024 11:25:50 CH, NC-537, 4479, ABC, RH, 75577, 2, 4
Dưới đây là các truy vấn phụ cho mỗi truy vấn. Trên một công việc bao gồm các tính năng bị lỗi, tôi nghĩ rằng tôi sẽ cần COALESCE ở đâu đó vì không phải mọi công việc đều có các tính năng bị lỗi nên đôi khi truy vấn con có thể trả về null
Điều này bao gồm số lượng các tính năng bị lỗi:
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
Cái này bao gồm tổng số tính năng:
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
Những gì tôi đã thử:
Đây là những gì tôi đã thử khi gặp lỗi cú pháp “thiếu từ khóa”. Tôi chỉ cố gắng thêm tổng số tính năng trước rồi thực hiện các tính năng bị lỗi nhưng dường như tôi không thể chỉ làm cho tổng số tính năng hoạt động được.
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
Giải pháp 1
Tôi đã hiểu rồi. Đó là một lỗi đánh máy ngu ngốc. Ở dòng thứ 4 từ dưới lên tôi ghi “là TF”, lẽ ra chỉ là “TF”
[ad_2]
コメント