Bases de Datos - Bases de Datos ayuda porfa soy nuevo en esto

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por juan (6 intervenciones) el 27/02/2021 00:52:30
aeropuertos

1. Muestre el código y nombre de los aeropuertos en los que
aterrizaron aviones que hayan realizado en los primeros 10 días
de cualquier mes de cualquier año, escalas en alguna ciudad que
contenga la letra u, muestre además la ciudad en la que hizo
escala dicho avión.
2. Muestre el número y el tipo de los aviones que tengan una
autonomía de vuelo mayor a 3333 y cuya distancia total de
todas las rutas que hayan cubierto dichos aviones, esté entre
1000 y 3000, muestre además la distancia total cubierta por
dichos aviones.
3. Muestre toda la información del aeropuerto (o aeropuertos)
cuyo nombre tenga en el quinto carácter la letra a, y en el cual
(o cuales) trabajan empleados con el nombre más corto.
4. Elimine los pilotos que tengan más de 45 años y cuyo nombre
tenga el mismo valor en el tercero y sexto carácter.
Página 2 de 2
5. Modifique las horas de vuelo a 1000 y el salario a 5000 para
todos los pilotos que tengan más de 50 años o para aquellos
cuyo nombre no tenga entre 8 y 12 caracteres.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por anonymous (41 intervenciones) el 27/02/2021 02:19:03
--1
SELECT AER.Cod_aerop, AER.Nombre, ESC.Ciudad
FROM aeropuerto AER
INNER JOIN Aterriza ATER ON ATER.Cod_aeropuerto = AER.Cod_aerop
INNER JOIN realiza REA ON REA.Cod_avion = ATER.Cod_avion
INNER JOIN escala ESC ON ESC.Cod_escala = REA.Cod_escaa
WHERE DATEPART(DAY, ATER.Fecha) BETWEEN 1 AND 10
AND AER.Ciudad LIKE '%u%'

--2
SELECT AVI.Num_avion, AVI.Tipo_avion, SUM(RUT.Distancia) AS Distancia
FROM avion AVI
INNER JOIN cubre CUB ON CUB.Cod_avion = AVI.Num_avion
INNER JOIN ruta RUT ON RUT.Cod_ruta = CUB.Cod_ruta
WHERE AVI.Autonomia_vuelo > 3333
GROUP BY AVI.Num_avion, AVI.Tipo_avion
HAVING SUM(RUT.Distancia) BETWEEN 1000 AND 3000

--3
SELECT DISTINCT ATO.Cod_aerop, ATO.Nombre, ATO.Ciudad
FROM aeropuerto ATO
INNER JOIN empleado EMP ON EMP.Cod_aeropuerto = ATO.Cod_aerop
WHERE SUBSTRING(ATO.nombre, 5, 1) = 'a'
AND LEN(EMP.nom_empleado) = (SELECT MIN(LEN(nom_empleado)) FROM empleado)

--4
DELETE from PILOTO
WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int)) > 45
AND (SUBSTRING(Nom_pil, 3, 1)) = (SUBSTRING(Nom_pil, 6, 1))

--5
UPDATE PILOTO
SET Horas_vuelo = 5000, Salario = 5000
WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int)) > 50
AND LEN(Nom_pil) NOT BETWEEN 8 AND 12

Encárguese usted de probarlos, porque yo no monté la BD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por Juan (6 intervenciones) el 27/02/2021 02:21:46
Muchas gracias
De verdad muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por anonymous (41 intervenciones) el 27/02/2021 03:26:52
Corrige el 5 es 1000 en vez de 5000 en las horas de vuelo

UPDATE PILOTO
SET Horas_vuelo = 1000, Salario = 5000
WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int)) > 50
AND LEN(Nom_pil) NOT BETWEEN 8 AND 12
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por juan (6 intervenciones) el 27/02/2021 03:32:23
hay un fallo

LINE 11: SELECT AVI.Num_avion, AVI.Tipo_avion, SUM(RUT.Distancia) AS ...

--2
SELECT AVI.Num_avion, AVI.Tipo_avion, SUM(RUT.Distancia) AS Distancia
FROM avion AVI
INNER JOIN cubre CUB ON CUB.Cod_avion = AVI.Num_avion
INNER JOIN ruta RUT ON RUT.Cod_ruta = CUB.Cod_ruta
WHERE AVI.Autonomia_vuelo > 3333
GROUP BY AVI.Num_avion, AVI.Tipo_avion
HAVING SUM(RUT.Distancia) BETWEEN 1000 AND 3000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por juan (6 intervenciones) el 27/02/2021 04:00:20
Como se pueden corregir?


1. ERROR: no existe la columna «day»
LINE 6: WHERE DATEPART(DAY, ATER.Fecha) BETWEEN 1 AND 10

--1
SELECT AER.Cod_aerop, AER.Nombre, ESC.Ciudad
FROM aeropuerto AER
INNER JOIN Aterriza ATER ON ATER.Cod_aeropuerto = AER.Cod_aerop
INNER JOIN realiza REA ON REA.Cod_avion = ATER.Cod_avion
INNER JOIN escala ESC ON ESC.Cod_escala = REA.Cod_escala
WHERE DATEPART(DAY , ATER.Fecha)BETWEEN 1 AND 10
AND AER.Ciudad LIKE '%u%'

3. ERROR: no existe la función len(character varying)
LINE 5: AND LEN(EMP.nom_empleado) = (SELECT MIN(LEN(nom_empleado)) F...

--3
SELECT DISTINCT ATO.Cod_aerop, ATO.Nombre, ATO.Ciudad
FROM aeropuerto ATO
INNER JOIN empleado EMP ON EMP.Cod_aeropuerto = ATO.Cod_aerop
WHERE SUBSTRING(ATO.nombre, 5, 1) = 'a'
AND LEN(EMP.nom_empleado) = (SELECT MIN(LEN(nom_empleado)) FROM empleado)

4. ERROR: no existe la columna «dd»
LINE 3: WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int...

--4
DELETE from PILOTO
WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int)) > 45
AND (SUBSTRING(Nom_pil, 3, 1)) = (SUBSTRING(Nom_pil, 6, 1))

5. ERROR: no existe la columna «dd»
LINE 4: WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int...

--5
UPDATE PILOTO
SET Horas_vuelo = 1000, Salario = 5000
WHERE (cast(datediff(dd,Fecha_nac,GETDATE()) / 365.25 as int)) > 50
AND LEN(Nom_pil) NOT BETWEEN 8 AND 12
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por anonymous (41 intervenciones) el 27/02/2021 04:24:41
Hum, yo no se que versión tengas de SQL Server, pero Day es análogo a DD, d

Mientras que Len lo es a Length

Intenta cambiar y pruébalas

Si tienes una versión muy reciente de SQL, búscate en google Funciones y formatos de SQL Convert Date

imagen_2021-02-26_223945

El punico query que no refleja registros es el 4, pero no es que est+e malo, sino que no cumplen con ese criterio y el último debería actualizarte 18 filas, según los datos que suministraste.

A mi me funcionan perfecto todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por Juan (6 intervenciones) el 27/02/2021 12:28:37
Y los demás son el mismo problema de versión DAY o que es lo que hay que corregir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Bases de Datos ayuda porfa soy nuevo en esto

Publicado por anonymous (41 intervenciones) el 27/02/2021 13:08:11
Entra a lwdp con tu clave y miras en tu buzón el correo que te envié

Es necesario saber que versión estás trabajando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar