यहां एएनएसआई-92 जॉइन सिंटैक्स का उपयोग करके आपकी क्वेरी को फिर से लिखा गया है:
SELECT a.abx_apo_number,
COUNT(ap1.process_mode) AS NUM_PLANNING,
COUNT(ap2.process_mode) AS NUM_SETUP,
COUNT(ap3.process_mode) AS NUM_OUTPUT
FROM ABX a
LEFT JOIN USER_INSTANCE u ON u.abx_apo_number = a.abx_apo_number
LEFT JOIN ACTIVE_PROCESS ap1 ON ap1.process_instance_number = u.instance_number
AND ap1.process_mode = 'PLANNING'
LEFT JOIN ACTIVE_PROCESS ap2 ON ap2.process_instance_number = u.instance_number
AND ap2.process_mode = 'SETUP'
LEFT JOIN ACTIVE_PROCESS ap3 ON ap3.process_instance_number = u.instance_number
AND ap3.process_mode = 'OUTPUT'
GROUP BY a.abx_apo_number
(+)
Oracle विशिष्ट LEFT OUTER JOIN सिंटैक्स है। इसे निकालने के लिए, प्रत्येक USER_INSTANCE.instance_number
. की आवश्यकता होगी प्रक्रिया मोड तीनों के लिए मान होना चाहिए:योजना बनाना, सेटअप, और आउटपुट - एक को छोड़ दें, और abx_apo_number आउटपुट में प्रदर्शित नहीं होगा।