2013-02-20 68 views
0

我有一个完美的工作这个SELECT子句:Postgres的复杂选择视图

SELECT 
    "Aspectos"."ID" AS "Aspecto Normativo ID", 
    "Aspectos"."Aspecto" AS "Aspecto Normativo",   
    "Fatores"."ID", "Fatores"."Fator" AS "Fator Normativo", 
    "Diagnostico"."Vinculo_Final", 
    "Fatores_1"."ID", 
    "Fatores_1"."Fator" AS "Fator Determinativo", 
    "Aspectos_1"."ID" AS "Aspecto Determinativo ID", 
    "Aspectos_1"."Aspecto" AS "Aspecto Determinativo", 
    Count("Itens"."ID") AS "No Itens", 
    Count("Itens"."ID") AS "Pri" 
FROM "Diagnostico" INNER JOIN ("Aspectos" AS "Aspectos_1" 
INNER JOIN (("Fontes" INNER JOIN "Itens" ON "Fontes"."ID" = "Itens"."Fonte") 
INNER JOIN ("Fatores" AS "Fatores_1" 
INNER JOIN ("Aspectos" 
INNER JOIN ("Vinculos" 
INNER JOIN "Fatores" 
ON "Vinculos"."Fator_Normativo" = "Fatores"."ID") 
ON ("Aspectos"."ID" = "Fatores"."Aspecto") 
AND ("Aspectos"."ID" = "Fatores"."Aspecto")) 
ON "Fatores_1"."ID" = "Vinculos"."Fator_Determinativo") 
ON "Itens"."ID" = "Vinculos"."Item") 
ON "Aspectos_1"."ID" = "Fatores_1"."Aspecto") 
ON "Diagnostico"."ID" = "Vinculos"."Diagnostico_ID" 
GROUP BY "Aspectos"."ID", "Aspectos"."Aspecto", 
      "Fatores"."ID", "Fatores"."Fator", 
      "Diagnostico"."Vinculo_Final", 
      "Fatores_1"."ID", 
      "Fatores_1"."Fator", 
      "Aspectos_1"."ID", 
      "Aspectos_1"."Aspecto" 
ORDER BY "Aspectos"."ID", "Aspectos_1"."ID", 
     "Fatores"."Fator", "Fatores_1"."Fator"; 

但是当我尝试创建一个视图与此相同的选择我收到的Thuis错误:

ERROR: column "ID" specified more than one time 

任何人都可以帮助我做到这一点。 谢谢

+0

你能告诉我们你的CREATE VIEW语句吗? – 2013-02-20 16:19:46

回答

2

您有"Fatores"."ID"(第4行)和"Fatores_1"."ID"(第6行)。给他们不同的别名。

对于这样复杂的查询,为了更好的可见性,建议在语句中每行只有一个(一个)列。此外,建议始终给列提供别名。

+0

非常感谢!来自巴西的问候! – Britto 2013-02-20 20:42:28

+0

它运行完美!再次感谢vyegorov! – Britto 2013-02-20 20:50:01