ORA-00904: "FOODSUPPLY". "FOODSUPPLYID": неверный идентификатор - PullRequest
0 голосов
/ 24 декабря 2018

Faced ORA-00904 Ошибка при выполнении INNER JOIN.В чем причина и как ее устранить?

Error : PL/SQL: ORA-00904: 
"FOODSUPPLY"."FOODSUPPLYID": invalid
     identifier

Есть несколько (F1) Цыпленок, и я хочу, чтобы только значение DISTINCT

Например: (F1) может появляться только один раз в (S001), но все еще может отображаться в (S002)

SELECT s.shelterID,'('|| fs.foodSupplyID ||') '||fs.foodSupplyName AS foodSupplyDesc
FROM FoodSupply FS,Victim V,Shelter s,Shelter_allocation sa
INNER JOIN Request R ON Request.foodsupplyID = FoodSupply.foodSupplyID
WHERE   r.victimID = v.victimID
    AND fs.foodsupplyID = r.foodSupplyID
    AND r.victimID=sa.victimID
    AND SA.shelterID=s.shelterID
ORDER BY s.shelterID,requestDate;

Токовый выход:

shelterID | foodDesc    
S001      | (F1)Chicken  
S001      | (F3)Beef     
S001      | (F1)Chicken  
S002      | (F1)Chicken  
S002      | (F5)Meat    
S002      | (F1)Chicken  

Желаемый выход:

shelterID | foodDesc       
S001      | (F1)Chicken    
          | (F3)Beef       
S002      | (F1)Chicken  
          | (F5)Meat

1 Ответ

0 голосов
/ 24 декабря 2018

Вы можете попробовать ниже - вы пропустили псевдоним

Однако лучше использовать явное объединение

 SELECT distinct s.shelterID,'('|| fs.foodSupplyID ||') '||fs.foodSupplyName AS foodSupplyDesc
    FROM FoodSupply FS INNER JOIN Request R ON R.foodsupplyID = FS.foodSupplyID
    Inner join Victim V on R.victimID = V.victimID
    Inner join Shelter_allocation sa on R.victimID=sa.victimID
    inner join Shelter s on sa.shelterID=s.shelterID
    ORDER BY s.shelterID,requestDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...