oracle - Using a table alias in a case statement in a where clause -


मेरे पास निम्न प्रश्न हैं:

  emp_id, emp_name, department, tbl_employee से वेतन चुनें एएमपी जहां (जब एएमपी डीपेमेंट = 'सी' का मामला होता है (चयन गिनती (*) से (सेलेक्ट वाई 'iscommissioner से tbl_emp_department टेड जहां ted.department = emp.department)) जब emp.department =' C 'तब (चयन करें गिनती (*) से (SELECT 'वाई' iscommissioner से tbl_emp_department ted जहां ted.department = emp.department और ted.id = 7)) END) & gt; 0  

मुझे निम्न त्रुटि मिल रही है:

  emp.department अमान्य पहचानकर्ता  

मैं क्या कर रहा हूँ गलत ?

इसका मामला कथन के साथ कुछ भी नहीं है यह मुद्दा सहसंबद्ध subqueries के लिए scoping नियम है वे केवल घोंसला एक स्तर गहरी है इस समस्या के साथ एक और सवाल है।

आपके उदाहरण के लिए, आपको नेस्टेड उपकुंजी की आवश्यकता नहीं है आप ऐसा कर सकते हैं:

  जहां (जब ईएमपी.department = 'C' तब (tbl_emp_department ted से ted.department = emp.department) का चयन करें (जब गिनती (*) का चयन करें जब emp.department = 'सी' तो (tbl_emp_department टेड से चयन संख्या (*) जहां ted.department = emp.department और ted.id = 7) END) & gt; 0  

हालांकि, क्योंकि आपकी क्वेरी वास्तव में समझ में नहीं आता है (दो जब खंड के लिए एक ही स्थिति है, मुझे संदेह है कि आपकी वास्तविक क्वेरी अधिक जटिल हो सकती है । स्पष्ट रूप से मिलती-जुलती और एग्रीग्रेड्स का उपयोग करके या विश्लेषणात्मक कार्यों का उपयोग करने के लिए आपको एक अन्य दृष्टिकोण प्राप्त करना पड़ सकता है।


Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

c++ - Redefined variable in the other module -