2014-10-04 36 views
1

我在尝试将结果导入我的报告(apex 4.0)时遇到问题。我的查询出现问题(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:您的查询包含重复的别名,用于报告的查询需要唯一的别名。

回答

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 
+0

非常感谢!我用你的答案来测试它,现在它工作:D你真棒。 – Elvira 2014-10-04 21:14:10

0

你有几列称为查询naam - 你应该给他们不同的名字。例如:

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 
+0

Omg我爱你的答案:D – Elvira 2014-10-04 21:13:51