Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/08/2015, 13:10
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: ¿Cómo resolver esto?

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 original
  1. CREATE TABLE parcela_cdad
  2. (
  3.   id INTEGER NOT NULL,
  4.   parcela_cdad CHARACTER VARYING(30),
  5.   propietario CHARACTER VARYING(50),
  6.   sup_cdad NUMERIC,
  7.   CONSTRAINT parcelas_pkey PRIMARY KEY (id)
  8. )
Tabla parcela_cat
Código SQL:
Ver original
  1. CREATE TABLE parcela_cat
  2. (
  3.   id INTEGER NOT NULL,
  4.   parcela_cat CHARACTER VARYING(50),
  5.   sup_cat NUMERIC,
  6.   CONSTRAINT parcelas_cdad_pkey PRIMARY KEY (id)
  7. )

Tabla relacion
Código SQL:
Ver original
  1. CREATE TABLE relacion
  2. (
  3.   id INTEGER NOT NULL,
  4.   id_cdad INTEGER,
  5.   id_cat INTEGER,
  6.   CONSTRAINT relacion_pkey PRIMARY KEY (id),
  7.   CONSTRAINT relacion_id_cat_fkey FOREIGN KEY (id_cat)
  8.       REFERENCES parcela_cat (id) MATCH SIMPLE
  9.       ON UPDATE CASCADE ON DELETE CASCADE,
  10.   CONSTRAINT relacion_id_cdad_fkey FOREIGN KEY (id_cdad)
  11.       REFERENCES parcela_cdad (id) MATCH SIMPLE
  12.       ON UPDATE CASCADE ON DELETE CASCADE
  13. )


Y esta es la vista que uso para ver toda la información:
Código SQL:
Ver original
  1. CREATE OR REPLACE VIEW parcelas AS
  2.  SELECT parcela_cdad.propietario,
  3.     parcela_cdad.parcela_cdad,
  4.     parcela_cdad.sup_cdad,
  5.     parcela_cat.parcela_cat,
  6.     parcela_cat.sup_cat
  7.    FROM parcela_cat,
  8.     parcela_cdad,
  9.     relacion
  10.   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 original
  1. propietario   | parcela_cdad | sup_cdad | parcela_cat | sup_cat
  2. _______________________________________________________________
  3. Fulano        |  parcela1    |   250    |Parcela_cat_1| 50  
  4. Fulano        |  parcela1    |   250    |Parcela_cat_2| 120
  5. Fulano        |  parcela1    |   250    |Parcela_cat_3| 80
  6. Fulano        |  parcela1    |   250    |Parcela_cat_4| 100
  7. Mengano       |  parcela2    |   100    |Parcela_cat_5| 200
  8. Zutano        |  parcela3    |   100    |Parcela_cat_5| 200

Y esto lo que me gustaría:

Código SQL:
Ver original
  1. propietario   | parcela_cdad | sup_cdad | parcela_cat | sup_cat
  2. _______________________________________________________________
  3. Fulano        |  parcela1    |   250    |Parcela_cat_1| 50  | 50+120+80+100
  4. Fulano        |  parcela1    |   250    |Parcela_cat_2| 120 | 50+120+80+100
  5. Fulano        |  parcela1    |   250    |Parcela_cat_3| 80   | 50+120+80+100
  6. Fulano        |  parcela1    |   250    |Parcela_cat_4| 100 | 50+120+80+100
  7. Mengano       |  parcela2    |   100    |Parcela_cat_5| 200 |200
  8. Zutano        |  parcela3    |   100    |Parcela_cat_5| 200 | 200
__________________
Mi calculadora en Qt

Última edición por dehm; 02/08/2015 a las 13:23 Razón: Ampliar información