Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-00904 अमान्य पहचानकर्ता" खंड द्वारा समूह में एक पहचानकर्ता के लिए

आप order by . को छोड़कर, SQL के समान स्तर के कॉलम उपनाम का उल्लेख नहीं कर सकते हैं खंड।

दस्तावेज़ीकरण से (जोर जोड़ा गया):

<ब्लॉककोट>

आप कॉलम उपनाम का उपयोग कर सकते हैं, c_alias , चयन सूची में तत्काल पूर्ववर्ती अभिव्यक्ति को लेबल करने के लिए ताकि कॉलम एक नए शीर्षक के साथ प्रदर्शित हो। उपनाम प्रभावी रूप से क्वेरी की अवधि के लिए चयन सूची आइटम का नाम बदल देता है। उपनाम का उपयोग ORDER BY में किया जा सकता है खंड, लेकिन क्वेरी में अन्य खंड नहीं

जब आप QTYLIV . का संदर्भ लें GROUP BY . में क्लूज चयन सूची का अभी तक मूल्यांकन नहीं किया गया है और उपनाम मौजूद नहीं है। इस तरह क्वेरी को पार्स और निष्पादित किया जाता है।

जब आपके पास चयन सूची में जटिल अभिव्यक्तियाँ होती हैं, तो इसे बाहरी चयन में लपेटना और बाद में समूह बनाना सबसे आसान होता है:

SELECT *
FROM (
  SELECT p.name AS design,
    p.M_PRODUCT_CATEGORY_ID,
    il.PRICEACTUAL   AS price,
    bp.C_BPARTNER_ID AS idpartner,
    CASE
  ...
    (SELECT qtyinvoiced
    FROM C_InvoiceLine il
    WHERE bp.ISCUSTOMER ='Y'
    AND bp.C_BPARTNER_ID= 18888
    )               AS qtyliv,
  ...
    i.DATEINVOICED AS dat
  FROM C_InvoiceLine il
  INNER JOIN M_PRODUCT p
  ...
  ON (oi.c_location_id=loc2.c_location_id)
    --WHERE i.DateInvoiced BETWEEN $P{Date1} AND $P{Date2}
    --AND
    --i.DocStatus in ('CO','CL')
    --AND i.IsSoTrx = 'Y'
    --AND   p.isstocked='Y'
)
GROUP BY name ,
  M_PRODUCT_CATEGORY_ID,
  QTYINVOICED,
  PRICEACTUAL,
...
  qtyliv,
  qtydepot
ORDER BY name ,
  dateinvoiced ;

ध्यान दें कि आप GROUP BY . में मूल तालिका उपनामों का उपयोग नहीं करते हैं या ORDER BY बाहरी चयन में खंड, क्योंकि वे अब दायरे में नहीं हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सीबीओ सांख्यिकी श्वेत पत्र

  2. R12.2 Ebuisness Suite में व्यवस्थापक स्क्रिप्ट

  3. ओरेकल 11 जी में असीमित अक्षर कैसे स्टोर करते हैं?

  4. ओरेकल डेटाबेस में तत्काल निष्पादन के साथ तालिका डीडीएल कैसे चलाएं

  5. एकाधिक सम्मिलित SQL oracle