Hola:
Bueno, era un ejemplo sintetizando mi duda, pero lo he recreado así (espero que no quede muy largo):
Tabla parcela_cdad
Código SQL:
Ver originalCREATE TABLE parcela_cdad
(
id INTEGER NOT NULL,
parcela_cdad CHARACTER VARYING(30),
propietario CHARACTER VARYING(50),
sup_cdad NUMERIC,
CONSTRAINT parcelas_pkey PRIMARY KEY (id)
)
Tabla parcela_cat
Código SQL:
Ver originalCREATE TABLE parcela_cat
(
id INTEGER NOT NULL,
parcela_cat CHARACTER VARYING(50),
sup_cat NUMERIC,
CONSTRAINT parcelas_cdad_pkey PRIMARY KEY (id)
)
Tabla relacion
Código SQL:
Ver originalCREATE TABLE relacion
(
id INTEGER NOT NULL,
id_cdad INTEGER,
id_cat INTEGER,
CONSTRAINT relacion_pkey PRIMARY KEY (id),
CONSTRAINT relacion_id_cat_fkey FOREIGN KEY (id_cat)
REFERENCES parcela_cat (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT relacion_id_cdad_fkey FOREIGN KEY (id_cdad)
REFERENCES parcela_cdad (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
Y esta es la vista que uso para ver toda la información:
Código SQL:
Ver originalCREATE OR REPLACE VIEW parcelas AS
SELECT parcela_cdad.propietario,
parcela_cdad.parcela_cdad,
parcela_cdad.sup_cdad,
parcela_cat.parcela_cat,
parcela_cat.sup_cat
FROM parcela_cat,
parcela_cdad,
relacion
WHERE relacion.id_cat = parcela_cat.id AND relacion.id_cdad = parcela_cdad.id;
La cual me dará una vista casi igual a como la deseo pero sin la última columna de la suma.
Saludos y gracias!
Esta sería una salida con datos:
Código SQL:
Ver originalpropietario | parcela_cdad | sup_cdad | parcela_cat | sup_cat
_______________________________________________________________
Fulano | parcela1 | 250 |Parcela_cat_1| 50
Fulano | parcela1 | 250 |Parcela_cat_2| 120
Fulano | parcela1 | 250 |Parcela_cat_3| 80
Fulano | parcela1 | 250 |Parcela_cat_4| 100
Mengano | parcela2 | 100 |Parcela_cat_5| 200
Zutano | parcela3 | 100 |Parcela_cat_5| 200
Y esto lo que me gustaría:
Código SQL:
Ver originalpropietario | parcela_cdad | sup_cdad | parcela_cat | sup_cat
_______________________________________________________________
Fulano | parcela1 | 250 |Parcela_cat_1| 50 | 50+120+80+100
Fulano | parcela1 | 250 |Parcela_cat_2| 120 | 50+120+80+100
Fulano | parcela1 | 250 |Parcela_cat_3| 80 | 50+120+80+100
Fulano | parcela1 | 250 |Parcela_cat_4| 100 | 50+120+80+100
Mengano | parcela2 | 100 |Parcela_cat_5| 200 |200
Zutano | parcela3 | 100 |Parcela_cat_5| 200 | 200