我的查询有问题(apex 4.0)

时间:2014-10-04 19:31:20

标签: join report apex

我在尝试将结果输入我的报告(顶点4.0)时遇到了问题。

我希望将cursist.naam,inschrijving.datum,opleiding.naam和cursus.naam作为结果

 CREATE TABLE ."CURSIST" 
   (    "CURSISTID" NUMBER(10,0) NOT NULL ENABLE, 
    "NAAM" VARCHAR2(60 BYTE), 
    "BSN" NUMBER(10,0), 
    "ADRES" VARCHAR2(100 BYTE), 
    "WOONPLAATS" VARCHAR2(100 BYTE), 
    "EMAIL" VARCHAR2(120 BYTE), 
    "GEBDATUM" DATE, 
    "TELNR" VARCHAR2(200 BYTE), 
     PRIMARY KEY ("CURSISTID")


  CREATE TABLE "CURSUS" 
   (    "CURSUSID" NUMBER(10,0) NOT NULL ENABLE, 
    "NAAM" VARCHAR2(50 BYTE), 
    "OMSCHRIJVING" VARCHAR2(200 BYTE), 
    "KOSTEN" NUMBER(10,0), 
    "TOTDATUM" DATE, 
    "VANDATUM" DATE NOT NULL ENABLE, 
    "LOKAAL" VARCHAR2(50 BYTE), 
    "ROOSTERROOSTERID" NUMBER(10,0) NOT NULL ENABLE, 
    "OPLEIDINGOPLEIDINGID" NUMBER(10,0) NOT NULL ENABLE, 


 CREATE TABLE "INSCHRIJVING" 
   (    "INSCHRIJVINGID" NUMBER(10,0) NOT NULL ENABLE, 
    "DATUM" DATE, 
    "STATUS" VARCHAR2(200 BYTE), 
    "OPLEIDINGOPLEIDINGID" NUMBER(10,0) NOT NULL ENABLE, 
    "CURSISTCURSISTID" NUMBER(10,0) NOT NULL ENABLE, 
    "CURSUSCURSUSID" NUMBER(10,0) NOT NULL ENABLE, 
     PRIMARY KEY ("INSCHRIJVINGID")




CREATE TABLE "OPLEIDING" 
   (    "OPLEIDINGID" NUMBER(10,0) NOT NULL ENABLE, 
    "NAAM" VARCHAR2(50 BYTE), 
    "KOSTEN" NUMBER(10,0), 
    "OMSCHRIJVING" VARCHAR2(200 BYTE), 
    "OPLEIDEROPLEIDERID" NUMBER(10,0) NOT NULL ENABLE, 
    "BEGINDATUM" DATE, 
    "EINDDATUM" DATE, 
    "AANGEMAAKTOP" DATE, 
     PRIMARY KEY ("OPLEIDINGID")

我有以下查询:

select cursist.naam, inschrijving.datum, opleiding.naam, cursus.naam
from cursist , inschrijving, opleiding, cursus
WHERE cursist.cursistID = 1
AND inschrijving.CURSISTCURSISTID = cursist.cursistID
AND opleiding.opleidingid = inschrijving.opleidingopleidingid
AND cursus.cursusid = inschrijving.cursuscursusid

出现以下错误: ORA-20001:您的查询包含重复的别名,用于报告的查询需要唯一的别名。

2 个答案:

答案 0 :(得分:0)

您有多个具有相同名称的结果列。试试这个:

select
    cursist.naam AS cursist_naam,
    inschrijving.datum,
    opleiding.naam AS opleiding_naam,
    cursus.naam AS cursus_naam
from
    cursist,
    inschrijving,
    opleiding,
    cursus
WHERE
    cursist.cursistID = 1
    AND inschrijving.CURSISTCURSISTID = cursist.cursistID
    AND opleiding.opleidingid = inschrijving.opleidingopleidingid
    AND cursus.cursusid = inschrijving.cursuscursusid

答案 1 :(得分:0)

您的查询中有多个名为naam的列 - 您应该为它们指定不同的名称。 E.g:

SELECT cursist.naam AS cursist_naam, 
       inschrijving.datum, 
       opleiding.naam AS opleiding_naam, 
       cursus.naam AS cursus_naam
FROM   cursist , inschrijving, opleiding, cursus
WHERE  cursist.cursistID = 1 AND 
       inschrijving.CURSISTCURSISTID = cursist.cursistID AND 
       opleiding.opleidingid = inschrijving.opleidingopleidingid AND
       cursus.cursusid = inschrijving.cursuscursusid