1

我对输出有点坚持......

问题:需要列出组和属于每个组的成员。对于每个组,显示唯一标识符及其名称(如果有)。对于每个成员,显示其组长的唯一标识符、姓名、性别、出生日期和标识符。在每个组中,按姓氏和名字对成员进行排序。

我的答案:

  SELECT 
      P.Name,
      P.DOB,
      P.Gender,
      G.GroupName,
      GL.PersonId   
FROM Person P
INNER JOIN GroupMember GM ON GM.PersonId =  P.PersonId
INNER JOIN Group G ON G.GroupId =  P.GroupId
INNER JOIN GroupLeader GL ON GL.GroupId = G.GroupId 

问题是,如何在这篇文章的顶部使用逻辑 ERD 正确显示这个问题......

对于我的回答,我是这样的:但是我创建了这个表,或者我错过了一些想法((

ORA-00942: table or view does not exist
4

1 回答 1

0

这个:

 INNER JOIN gLeader GL ON GL.group_idG.group_id 

是无效的。不应该是这个吗?

 INNER JOIN gLeader GL ON GL.group_id = G.group_id 

编辑从这里开始

从这个开始:

SELECT 

  -- P.Name
  -- , P.DOB
  -- , P.Gender
  -- , G.GroupName
  -- , GL.PersonId   

 count(*)
 FROM Person P
 -- INNER JOIN GroupMember GM ON GM.PersonId =  P.PersonId
 -- INNER JOIN Group G ON G.GroupId =  P.GroupId
 -- INNER JOIN GroupLeader GL ON GL.GroupId = G.GroupId 
 where 1=2

如果它运行成功,请逐行取消注释 from 子句的其余部分并每次运行它。如果您没有收到任何错误,请从 select 子句中删除 count(*),并取消注释每个字段,直到您收到错误为止。然后你就会知道问题出在哪里了。

如果第一次出错,您可能必须使用数据库名称或他们在 oracle 中调用的任何名称来限定您的表名。在我的工作中,我不得不做这两种类型的事情。

from database.tablenam

 from "database"."tablename"
于 2013-03-10T20:04:00.020 回答