Ayuda con querys
Publicado por Tro (2 intervenciones) el 20/11/2018 00:11:58
Buenas, soy estudiante de programacion, pero me enviaron un trabajo que con mi experiencia(que es poca)
, no se resolverla...
El encabezado de la primera pregunta es este...
Una de las consideraciones para calcular el fondo de reserva que cada departamento debe pagar es la cantidad de dormitorios que
posee. Por esta razón, se requiere contar con un cuadro resumen que por cada edificio que la empresa administra visualice el total de
departamentos que posee y el total de departamentos que posee de acuerdo a la cantidad de dormitorios. Cabe señalar, que la
empresa, por una política interna, administra edificios que poseen departamentos de hasta 5 dormitorios.
El usuario requiere que la información se muestre en el formato que se indica en el ejemplo y ordenada alfabéticamente por el nombre
del edificio:

Y lo que llevo es esto...
select edi.EDI_NOMBRE_EDIFICIO as "NOMBRE EDIFICIO",
COUNT(dep.NRO_DEPARTAMENTO) AS "TOTAL DEPTOS",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=1
) AS "TOTAL DEPTOS 1 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=2
) AS "TOTAL DEPTOS 2 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=3
) AS "TOTAL DEPTOS 3 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=4
) AS "TOTAL DEPTOS 4 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=5
) AS "TOTAL DEPTOS 5 DORMITORIO"
from edificio edi
inner join DEPARTAMENTO dep on EDI.id_edificio = dep.ID_EDIFICIO
WHERE EDI.id_edificio = dep.ID_EDIFICIO
group by edi.EDI_NOMBRE_EDIFICIO
ORDER BY 1 ASC;

Adjunto el modelo, por si alguien le ayuda c:
, no se resolverla...
El encabezado de la primera pregunta es este...
Una de las consideraciones para calcular el fondo de reserva que cada departamento debe pagar es la cantidad de dormitorios que
posee. Por esta razón, se requiere contar con un cuadro resumen que por cada edificio que la empresa administra visualice el total de
departamentos que posee y el total de departamentos que posee de acuerdo a la cantidad de dormitorios. Cabe señalar, que la
empresa, por una política interna, administra edificios que poseen departamentos de hasta 5 dormitorios.
El usuario requiere que la información se muestre en el formato que se indica en el ejemplo y ordenada alfabéticamente por el nombre
del edificio:

Y lo que llevo es esto...
select edi.EDI_NOMBRE_EDIFICIO as "NOMBRE EDIFICIO",
COUNT(dep.NRO_DEPARTAMENTO) AS "TOTAL DEPTOS",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=1
) AS "TOTAL DEPTOS 1 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=2
) AS "TOTAL DEPTOS 2 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=3
) AS "TOTAL DEPTOS 3 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=4
) AS "TOTAL DEPTOS 4 DORMITORIO",
(
SELECT COUNT(TOTAL_DORMITORIOS)
FROM DEPARTAMENTO
WHERE TOTAL_DORMITORIOS=5
) AS "TOTAL DEPTOS 5 DORMITORIO"
from edificio edi
inner join DEPARTAMENTO dep on EDI.id_edificio = dep.ID_EDIFICIO
WHERE EDI.id_edificio = dep.ID_EDIFICIO
group by edi.EDI_NOMBRE_EDIFICIO
ORDER BY 1 ASC;

Adjunto el modelo, por si alguien le ayuda c:
Valora esta pregunta


3