duda sql
Publicado por Vanessa (1 intervención) el 09/03/2010 13:46:11
Hola a tod@s:
Tengo las siguientes tablas, relacionadas tal y como aparecen:
Vivienda (Portal_pk, tipo_vivienda)
Edificio (Portal_pk, cod_tramo_fk)
Tramo (Cod_tramo_pk, cod_calle_fk)
Calle (Cod_calle_pk, nombre_barrio_fk)
Barrio (nombre_barrio_pk, cod_calle_fk)
Me piden:
Dado un barrio, obtener el TIPO DE VIVIENDA QUE MÁS PREDOMINA.
En mi caso, tengo que sacar los tipos de vivienda, pertenecientes a los edificios que estén en los tramos de las calles del barrio indicado.
He probado con esta select pero sólo me saca los tipos de vivienda que más predominan, no EL QUE MÁS PREDOMINA (DEBER SER ÚNICO)
SELECT COUNT(TIPO_VIVIENDA) AS VECES, TIPO_VIVIENDA, N_PORTAL_FK AS PORTAL
FROM VIVIENDA
GROUP BY TIPO_VIVIENDA, N_PORTAL_FK
HAVING COUNT(TIPO_VIVIENDA) > ANY
(SELECT COUNT(TIPO_VIVIENDA) FROM VIVIENDA GROUP BY TIPO_VIVIENDA)
AND N_PORTAL_FK IN
(SELECT N_PORTAL_PK
FROM EDIFICIO E
WHERE E.COD_TRAMO_FK IN
(SELECT T.COD_TRAMO_PK
FROM TRAMO T
WHERE T.COD_CALLE_FK IN
(SELECT C.COD_CALLE_PK FROM CALLE C WHERE C.NOMBRE_BARRIO_FK = 'SAN ISIDRO')
)
);
Agradecería vuestra ayuda, es importante.
Tengo las siguientes tablas, relacionadas tal y como aparecen:
Vivienda (Portal_pk, tipo_vivienda)
Edificio (Portal_pk, cod_tramo_fk)
Tramo (Cod_tramo_pk, cod_calle_fk)
Calle (Cod_calle_pk, nombre_barrio_fk)
Barrio (nombre_barrio_pk, cod_calle_fk)
Me piden:
Dado un barrio, obtener el TIPO DE VIVIENDA QUE MÁS PREDOMINA.
En mi caso, tengo que sacar los tipos de vivienda, pertenecientes a los edificios que estén en los tramos de las calles del barrio indicado.
He probado con esta select pero sólo me saca los tipos de vivienda que más predominan, no EL QUE MÁS PREDOMINA (DEBER SER ÚNICO)
SELECT COUNT(TIPO_VIVIENDA) AS VECES, TIPO_VIVIENDA, N_PORTAL_FK AS PORTAL
FROM VIVIENDA
GROUP BY TIPO_VIVIENDA, N_PORTAL_FK
HAVING COUNT(TIPO_VIVIENDA) > ANY
(SELECT COUNT(TIPO_VIVIENDA) FROM VIVIENDA GROUP BY TIPO_VIVIENDA)
AND N_PORTAL_FK IN
(SELECT N_PORTAL_PK
FROM EDIFICIO E
WHERE E.COD_TRAMO_FK IN
(SELECT T.COD_TRAMO_PK
FROM TRAMO T
WHERE T.COD_CALLE_FK IN
(SELECT C.COD_CALLE_PK FROM CALLE C WHERE C.NOMBRE_BARRIO_FK = 'SAN ISIDRO')
)
);
Agradecería vuestra ayuda, es importante.
Valora esta pregunta
0