conta_relatos()
selectステートメントとして非常にうまく実行されているユーザー定義関数を使用したこの複雑なクエリがあります。しかし、同じ手順でビューを作成しようとすると機能しません。Postgresは、列「conta_relatos」に疑似タイプのレコードがあると言っています。この関数conta_relatos()
は、レコード型変数を返します。
編集者による追加:
戻り型は、前の質問で定義されているよく知られた複合型です:
Postgres関数End Loop and return Error
以下はクエリです:
CREATE OR REPLACE VIEW "Sumario" AS
SELECT "Aspectos"."ID" AS "Aspecto Normativo ID",
"Aspectos"."Aspecto" AS "Aspecto Normativo",
"Fatores"."ID" AS "Fator Normativo ID",
"Fatores"."Fator" AS "Fator Normativo", "Diagnostico"."Vinculo_Final",
"Fatores_1"."ID" AS "Fator Determinativo 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",
conta_relatos("Fatores"."ID", "Fatores_1"."ID")
FROM
"Diagnostico"
JOIN ("Aspectos" "Aspectos_1"
JOIN ("Fontes"
JOIN "Itens" ON "Fontes"."ID" = "Itens"."Fonte"
JOIN ("Fatores" "Fatores_1"
JOIN ("Aspectos"
JOIN ("Vinculos"
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";