Oracle sélectionnez avec sous-requête

Pourriez-vous s'il vous plaît aidez-moi avec prochain oracle sql de la requête.

SELECT "NEWS"."NEWSID" as ID,
       "NEWS"."SLUG",
       "NEWS_TRANSLATION".*, 
       (SELECT FILENAME FROM NEWS_MEDIA WHERE NEWSID = ID AND rownum <= 1 ORDER BY POSITION ASC) as FILENAME
FROM "NEWS" 
INNER JOIN "NEWS_TRANSLATION" ON NEWS.NEWSID = NEWS_TRANSLATION.NEWSID 
WHERE (NEWS.PUBLISH = 1) AND (NEWS_TRANSLATION.LANG = :lang) 
ORDER BY "NEWS"."NEWSID" DESC;

Lorsque j'exécute cette requête, j'ai l'erreur

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 4 Column: 74
Si l'intention est d'obtenir le nom de fichier de la position MIN, pour un point de presse à partir de news_media, je ne pense pas que rownum est utilisé correctement. Le "ORDER BY" est appliqué après un enregistrement est sélectionné. Il faudrait subqueried ou, mieux encore, jointes séparément avec MIN(position). Voir oracle.com/technetwork/issue-archive/2006/06-sep/...

OriginalL'auteur rtyshyk | 2012-08-03

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *