para hacer encabezado de la tabla primero realizo la consulta para saber el numero de volcanes el cual es 7
Código SQL:
Ver originalCREATE TABLE volcan
(
codigo CHARACTER VARYING(10) NOT NULL,
nombre CHARACTER VARYING(30),
descripcion CHARACTER VARYING(50),
latitud REAL,
longitud REAL,
codigo_observatorio CHARACTER VARYING(8),
alias CHARACTER VARYING(15),
CONSTRAINT pk_volcan_codigo PRIMARY KEY (codigo),
CONSTRAINT fk_volcan_observatorio FOREIGN KEY (codigo_observatorio)
REFERENCES observatorio (codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
SELECT * FROM volcan WHERE codigo_observatorio = 'ovsm' ORDER BY nombre
SELECT COUNT(*) FROM volcan WHERE codigo_observatorio = 'ovsm'
la consulta para los 140 registros es esta
Código SQL:
Ver originalSELECT cantidad,item,volcan.codigo AS codigovolcan,volcan.nombre AS nombrevolcan,volcan.alias,codigo_observatorio,tipo_estacion.codigo AS codigotipoestacion,tipo_estacion.nombre AS nombreestacion,area.nombre AS nombrearea,area.codigo AS codigoarea FROM inv_est_instaladas,volcan,tipo_estacion,area WHERE inv_est_instaladas.codigo_volcan = volcan.codigo AND tipo_estacion.codigo = inv_est_instaladas.codigo_tipo_estacion AND tipo_estacion.codigo_area = area.codigo AND volcan.codigo_observatorio = :obsevatorio ORDER BY area.codigo, tipo_estacion.codigo, volcan.codigo
y esta es la estructura de las tablas consultadas
Código SQL:
Ver originalCREATE TABLE inv_est_instaladas
(
cantidad INTEGER,
codigo_volcan CHARACTER VARYING(10),
codigo_tipo_estacion CHARACTER VARYING(8),
item serial NOT NULL,
CONSTRAINT pk_inv_est_instaladas PRIMARY KEY (item),
CONSTRAINT fk_inv_est_instaladas_volcan FOREIGN KEY (codigo_volcan)
REFERENCES volcan (codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_inv_estaciones_tipo_estacion FOREIGN KEY (codigo_tipo_estacion)
REFERENCES tipo_estacion (codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE tipo_estacion
(
codigo CHARACTER VARYING(15) NOT NULL,
codigo_area CHARACTER VARYING(15),
descripcion CHARACTER VARYING(50),
nombre CHARACTER VARYING(40),
suma BOOLEAN,
CONSTRAINT pk_tipo_estacion_codigo PRIMARY KEY (codigo),
CONSTRAINT fk_tipo_estacion_area FOREIGN KEY (codigo_area)
REFERENCES area (codigo) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
CREATE TABLE area
(
codigo CHARACTER VARYING(15) NOT NULL,
descripcion CHARACTER VARYING(250),
nombre CHARACTER VARYING(30),
CONSTRAINT area_pkey PRIMARY KEY (codigo)
)
y las dos consultas que requiero poner en las ultimas columnas son , tambien son 140 registros
Código SQL:
Ver originalSELECT item,volcan.codigo AS codigovolcan,volcan.nombre AS nombrevolcan,volcan.alias,codigo_observatorio,tipo_estacion.codigo AS codigotipoestacion,tipo_estacion.nombre AS nombreestacion,area.nombre AS nombrearea,area.codigo AS codigoarea
FROM inv_est_instaladas,conectividad_inv_estaciones,volcan,tipo_estacion,area
WHERE inv_est_instaladas.item = conectividad_inv_estaciones.item_inv_est_instaladas AND inv_est_instaladas.codigo_volcan = volcan.codigo AND tipo_estacion.codigo = inv_est_instaladas.codigo_tipo_estacion AND tipo_estacion.codigo_area = area.codigo AND volcan.codigo_observatorio = 'ovsm' AND tipo_estacion.suma = 't' AND conectividad_inv_estaciones.item_conectividad = 1 ORDER BY area.codigo, tipo_estacion.codigo, volcan.codigo