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を使用してこの質問を正しく表示する方法です。

私の答えのために私はこれが好きです:しかし私はこのテーブルを作成します、または私はいくつかのthink((

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句の残りの部分を1行ずつコメント解除し、毎回実行します。エラーが発生しない場合は、select句からcount(*)を削除し、エラーが発生するまで各フィールドのコメントを解除します。そうすれば、問題が何であるかがわかります。

初めてエラーが発生した場合は、テーブル名をデータベース名、またはOracleで呼び出されている名前で修飾する必要があります。私は自分の仕事でこれらのタイプの両方をしなければなりませんでした。

from database.tablenam

 from "database"."tablename"
于 2013-03-10T20:04:00.020 に答える