Está en la página 1de 5

1.

Escriba la sentencia SQL para obtener la información sombreada:

Solución:
Para esta solución se usa el operador de unión FULL OUTER JOIN, el cual nos
permite unir las tablas gracias a la igualdad de un atributo foráneo usado en
ambas, pero con la distinción de dejar de lado los valores interceptados
use db1
SELECT A.atributo1, A. atributo2, B. atributo3, B. atributon
FROM Tabla1 A FULL OUTER JOIN Tabla2 B ON A.atributo1 = B.atributo1
WHERE A.atributo1 IS NULL OR B.atributo1 IS NULL

Ejemplo:
Se tiene dos tablas con diferentes atributos salvo 1 el cual posee la misma
cantidad de datos en ambos y que cada uno posee solo 1 dato diferente del otro,
por lo tanto se sobreentiende que nuestro resultado obtendría solo dos datos.

2. Escriba la sentencia SQL para obtener la información sombreada:


Solución:
Para esta solución se usa el operador de unión LEFT JOIN, el cual nos permite
unir las tablas por la izquierda gracias a la igualdad de un atributo foráneo usado
en ambas, pero con la distinción de dejar todos los valores pertenecientes a la
tabla de la derecha.
use db1
SELECT A.atributo1, A. atributo2, B. atributo3, B. atributon
FROM Tabla1 A LEFT JOIN Tabla2 B ON A.atributo1 = B.atributo1
WHERE B.atributo1 IS NULL

Ejemplo:
Del mismo ejemplo anterior, se sobreentiende que nuestro resultado obtendría
solo un dato.

3. Escriba la sentencia SQL que muestre el nombre del ejecutivo con más ventas
de cada región.
Solución:
Para esta solución se empezó creando la tabla SQL, luego los atributos y
posteriormente realizar la consulta con nuestro resultado.

USE MASTER
CREATE DATABASE [SQL]

USE SQL
Create table DATOS (idejecutivo int identity primary key, idregion int, nombre
varchar(20), ventas int)

-- INSERTAR REGISTROS EN LA TABLA


INSERT INTO DATOS ( idregion , nombre, ventas)
values (1,' JORGE',1000 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (1,' ALICIA',1200 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (1,' MIGUEL',900 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (2,' NICOLAS',1500 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (2,' RUBEN',1600 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (3,' FERNANDO',800 )

INSERT INTO DATOS ( idregion , nombre, ventas)


values (3,' KARINA',1000 )

SELECT DATOS.nombre, DATOS.IDREGION, maxPer.VENTAS


FROM DATOS
INNER JOIN ( select IDREGION, max(VENTAS) as VENTAS from DATOS group by IDREGION)
as maxPer
ON maxPer.VENTAS = DATOS.VENTAS and maxPer.IDREGION= DATOS.IDREGION
ORDER BY DATOS.IDREGION

Resultado:
4. Dada una matriz cuadrada, calcule el valor absoluto de la diferencia de la suma
de las diagonales utilizando seudocódigo, código R o código Python.

Solución:
Para esta solución se empezó importando la librería numpy, para un mejor
manejo de los datos, a su vez se inicializo las variables de entrada así como las
acumuladoras. Se recogen una cantidad de x vectores con x datos cada una, así
construir nuestra matriz, de la cual se sumarán los valores de cada diagonal y su
correspondiente valor absoluto del resultado de la sustracción de ellas.

import numpy as np
x = int(input("Teclea el orden de la matriz cuadrada a ingresar: "))
mi_arr = np.array(
np.zeros((x,x)) )
v = np.array(
np.zeros((1,x)) )
for i in range(0,x):
v=list(map(int,input(" los datos de la fila: ").split()))
mi_arr[i,:] = v
print(mi_arr)

suma1=0
suma2=0
for i in range(0,x):
suma1=suma1+mi_arr[i][i]
suma2=suma2+mi_arr[x-i-1][i]

print('La suma de los elementos de la diagonal principal es: ',suma1)


print('La suma de los elementos de la diagonal secundaria es: ',suma2)
salida=abs(suma1-suma2)
print('El resultado final es : ',salida)

Resultado:

También podría gustarte