Oracle
 sql >> Database >  >> RDS >> Oracle

Identificatore SQL non valido

Il problema è che stai mescolando JOIN. Hai sia join impliciti che espliciti. La sintassi esplicita JOIN con la clausola ON ha una precedenza maggiore sull'unione implicita con le virgole. Di conseguenza l'alias per l'plant e l'offerte le tabelle non saranno disponibili nella clausola ON. Prova a utilizzare lo stesso tipo di JOIN in tutto:

SELECT p.plantnaam, o.levcode, o.offerteprijs
FROM 
(
  SELECT plantcode , MIN(offerteprijs) AS offprijs 
  FROM offerte
  GROUP BY plantcode
) s
INNER JOIN plant p
   ON s.plantcode = p.plantcode
INNER JOIN offerte o
   ON s.offprijs = o.offerteprijs
ORDER BY p.plantnaam, l.levcode