0

SQL create view ステートメントを作成していますが、最後に記述しなければならないステートメントに問題があります。このステートメントでは、intersect を使用して、30 歳以上で身長が 65 インチ以上の人を取得する必要があります。クエリの正確な詳細は次のとおりです。

  • 体組成表に記載されている 30 歳以上のすべての人の姓名を返すクエリを作成します。次に、INTERSECTS を使用して 30 歳以上で身長が 65 インチを超えるすべての人を返すようにクエリを変更します。

別のテーブルから名前を取得するために交差と内部結合を使用してこのビュー ステートメントを記述しようとしましたが、プログラムを実行しようとするとエラーが発生します。私が得るエラーは

エラー: "WHERE"
行 11 またはその近くに構文エラーがあります: WHERE b.height = 65;

プログラム全体を投稿するつもりはありません。この create view ステートメントだけを投稿するので、行番号はオフになります。コードを投稿してから、このビュー ステートメントを作成するために使用している 2 つのテーブルを投稿します。誰かがこのエラーを修正するのを手伝ってくれることを願っています。前もって感謝します。

CREATE VIEW intersectt AS
   SELECT 
      a.fname, a.lname
   FROM 
      what.person as a
   INNER JOIN 
      what.body_composition as b ON a.pid = b.pid
   WHERE 
      b.age > 30

   INTERSECT

   SELECT 
      a.fname, a.lname
   FROM 
      what.person as a
   INNER JOIN 
      what.body_composition as b 
   WHERE 
      b.height = 65;

ここに2つのテーブルがあります

what.body_composition:

 Column |  Type   | Modifiers 
--------+---------+-----------
 pid    | integer | not null
 height | integer | not null
 weight | integer | not null
 age    | integer | not null

とテーブルwhat.person:

 Column |         Type          |                      Modifiers                      
--------+-----------------------+-----------------------------------------------
 pid    | integer               | not null default nextval('person_pid_seq'::reg class)
 uid    | integer               | 
 fname  | character varying(25) | not null
 lname  | character varying(25) | not null
4

1 に答える 1

0

2 番目のクエリに ON 句がありません

   CREATE VIEW intersectt AS
   SELECT a.fname, a.lname
   FROM what.person as a
   INNER JOIN     what.body_composition as b
   ON a.pid = b.pid
   AND b.age > 30
   INTERSECT
   SELECT a.fname, a.lname
   FROM what.person as a
   INNER JOIN what.body_composition as b
   ON a.pid = b.pid
   AND b.height = 65 
于 2014-10-05T18:03:53.723 に答える