SQL (Structured Query Language) Lenguaje Estructurado de Consultas, es un lenguaje utilizado para la creación, definición y manipulación de los datos contenidos en una Base de Datos.
Permite que aplicaciones de sistemas, desarrollados con distintas herramientas y lenguajes de programación usen un único lenguaje estándar para el acceso a los datos contenidos en una base de datos.
En el desarrollo de los prácticos utilizaremos una herramienta para acceder a una base de datos:
Unidad 3: Guía de SQL
Unidad 3: Guía de SQL
Web de consulta de Base de Datos
Usuario: alumno
Contraseña: alumno
Base de Datos: datos1
Los ejercicios se desarrollarán de acuerdo a la siguiente guía:
Ejercicios adicionales:
Ejercicios Adicionales (Q - U):
Q) Obtenga el saldo adeudado por los clientes agrupados por vendedor.
R) En el listado anterior agregar el nombre del vendedor.
S) Obtenga el saldo adeudado por los clientes agrupados por vendedor. Teniendo en cuenta solo los casos en los que el total adeudado por vendedor sea mayor a cero. En el listado se debe mostrar el apellido del vendedor.
T) Total de ventas netas de IVA de cada cliente
U)Listado de los vendedores cuyo total de ventas netas de IVA es mayor que 700
Presentación de SQL
SOLUCIONES
Ej. 2
SELECT nombre_cliente, cuit, calle_y_nro_cli, barrio_cli, ciudad_cli, cod_postal_cli, telefono_cli,
saldo_actual, limite_credito FROM CLIENTES
Ej. 3
SELECT nombre_cliente, cuit, calle_y_nro_cli, barrio_cli, ciudad_cli, cod_postal_cli, telefono_cli,
saldo_actual, limite_credito
FROM CLIENTES
WHERE saldo_actual > limite_credito
Ej. 4
SELECT nombre_cliente, cuit, calle_y_nro_cli, barrio_cli, ciudad_cli, cod_postal_cli, telefono_cli,
ctacte_susp
FROM CLIENTES
WHERE saldo_actual > limite_credito
AND ctacte_susp = “N”
Ej. 5
SELECT nombre_cliente, cuit, calle_y_nro_cli, barrio_cli, ciudad_cli, cod_postal_cli, telefono_cli,
saldo_actual
FROM CLIENTES
WHERE ctacte_susp = ‘S’
Ej. 6
SELECT descripcion_producto, stock_deposito1, stock_deposito2
FROM INVENTARIO
WHERE discontinuado = “S”
Ej. 7
SELECT CLIENTES.nombre_cliente, CLIENTES.cuit, prefijo_comprobante, numero_comprobante,
fecha_comprobante, saldo_no_cancelado
FROM CLIENTES, CTACTE
WHERE CLIENTES.id_cliente = CTACTE.id_cliente
AND ctacte_susp = “S”
AND saldo_no_cancelado > 0
Ej. 8
SELECT CLIENTES.nombre_cliente, CLIENTES.cuit, prefijo_comprobante, numero_comprobante,
fecha_comprobante, saldo_no_cancelado
FROM CLIENTES, CTACTE
WHERE CLIENTES.id_cliente = CTACTE.id_cliente
AND saldo_no_cancelado > 0
ORDER BY fecha_comprobante
Ej. 9
SELECT nombre_cliente, calle_y_nro_cli, barrio_cli, cod_postal_cli, ciudad_cli, nombre_provincia
FROM CLIENTES, PROVINCIAS
WHERE CLIENTES.id_provincia = PROVINCIAS.id_provincia
AND nombre_provincia <> ‘CORDOBA’
Ej. 10
Hacer primero un SELECT de la tabla SECTORES para ver cual es el código del sector “RIO CUARTO Y ZONA DE INFL.”
SELECT nombre_cliente, calle_y_nro_cli, barrio_cli, cod_postal_cli, ciudad_cli, saldo_actual
FROM CLIENTES
WHERE id_sector = 2
Ej 10 Bis
SELECT nombre_cliente, calle_y_nro_cli, barrio_cli, cod_postal_cli, ciudad_cli, saldo_actual,
nombre_sector
FROM CLIENTES, SECTORES
WHERE CLIENTES.id_sector = SECTORES.id_sector
AND nombre_sector LIKE “RIO CUARTO Y ZONA DE INFL.”
Ej. 11
SELECT id_vendedor, apellido_vendedor, nombre_vendedor
FROM VENDEDORES
WHERE id_vendedor BETWEEN 6 AND 8
Ej. 12
SELECT *
FROM CLIENTES
WHERE nombre_cliente LIKE “Med%”
Ej. 13
SELECT *
FROM CLIENTES
WHERE nombre_cliente LIKE “%Jose%”
Ej. 14
SELECT *
FROM CLIENTES
WHERE id_vendedor IN (5,6,7)
ORDER BY id_vendedor
Ej. 15
SELECT *
FROM CLIENTES
WHERE id_vendedor IN (1,2,3,4)
AND ciudad_cli LIKE “%CORDOBA%”
ORDER BY id_vendedor
Ej. 16
SELECT *
FROM CLIENTES
WHERE id_vendedor BETWEEN 1 AND 10
AND (ciudad_cli LIKE “CORDOBA” OR ciudad_cli LIKE “%RIO%”)
ORDER BY id_vendedor DESC
Ej. 17
SELECT id_vendedor, AVG(neto_gravado+neto_no_gravado) AS ventas_promedio
FROM CTACTE
GROUP BY id_vendedor
Ej. 18
(Ej. 14 bis)
SELECT CLIENTES .*, apellido_vendedor, nombre_vendedor
FROM CLIENTES, VENDEDORES
WHERE CLIENTES.id_vendedor = VENDEDORES.id_vendedor
AND VENDEDORES.id_vendedor IN (5,6,7)
ORDER BY VENDEDORES.id_vendedor
(Ej. 15 bis)
SELECT CLIENTES .*, apellido_vendedor, nombre_vendedor
FROM CLIENTES, VENDEDORES
WHERE CLIENTES.id_vendedor = VENDEDORES.id_vendedor
AND VENDEDORES.id_vendedor IN (1,2,3,4)
AND ciudad_cli LIKE “CORDOBA”
ORDER BY VENDEDORES.id_vendedor
(Ej. 16 bis)
SELECT CLIENTES .*, apellido_vendedor, nombre_vendedor
FROM CLIENTES, VENDEDORES
WHERE CLIENTES.id_vendedor = VENDEDORES.id_vendedor
AND VENDEDORES.id_vendedor BETWEEN 1 AND 10
AND (ciudad_cli LIKE “CORDOBA” OR ciudad_cli LIKE “%RIO%”)
ORDER BY VENDEDORES.id_vendedor DESC
Ej. 19
SELECT id_cliente, nombre_cliente, SUM(neto_gravado+neto_no_gravado) AS ventas
FROM CTACTE
GROUP BY id_cliente, nombre_cliente
Ej. 20
SELECT id_cliente, nombre_cliente, SUM(neto_gravado+neto_no_gravado) AS ventas
FROM CTACTE, DETALLE_MOVIM_CTACTEWHERE CTACTE.nro_movim_ctacte = DETALLE_MOVIM_CTACTE.nro_movim_ctacte AND
id_producto = '10142'
GROUP BY id_cliente, nombre_cliente
EJERCICIOS ADICIONALES
C)
SELECT nombre_cliente, prefijo_comprobante, numero_comprobante, importe_total
FROM CTACTE, VENDEDORES
WHERE CTACTE.id_vendedor = VENDEDORES.id_vendedor
AND apellido_vendedor LIKE "%Martínez%"
D)
SELECT nombre_cliente, prefijo_comprobante, numero_comprobante, importe_total,
desc_tipo_movim
FROM CTACTE, VENDEDORES, TIPOS_MOVIMIENTOS
WHERE CTACTE.id_vendedor = VENDEDORES.id_vendedor
AND CTACTE.id_tipo_movim = TIPOS_MOVIMIENTOS.id_tipo_movim
AND apellido_vendedor LIKE "Martínez"
E)
SELECT apellido_vendedor, nombre_vendedor, nombre_cliente, saldo_actual, limite_credito,
limite_credito - saldo_actual AS exceso_credito
FROM VENDEDORES, CLIENTES
WHERE VENDEDORES.id_vendedor = CLIENTES.id_vendedor
AND saldo_actual > limite_credito
ORDER BY limite_credito - saldo_actual
F)
SELECT * FROM CTACTE WHERE nro_movim_ctacte = 9920
G)
SELECT *
FROM DETALLE_MOVIM_CTACTE
WHERE nro_movim_ctacte = 9920
H)
SELECT descripcion_producto, DETALLE_MOVIM_CTACTE .cantidad, precio
FROM DETALLE_MOVIM_CTACTE, INVENTARIO
WHERE DETALLE_MOVIM_CTACTE.id_producto = INVENTARIO.id_producto
AND nro_movim_ctacte = 9920
I)
La razón es que en la tabla INVENTARIO no existe uno de los artículos que forman parte del detalle del movimiento en cuenta corriente. Explicar el tema de “Falta de Integridad de los Datos”
J)
SELECT SUM(saldo_actual) AS saldo_total
FROM CLIENTES
K)
SELECT AVG(saldo_actual)
FROM CLIENTES
WHERE saldo_actual > 0
L)
SELECT MAX(saldo_actual)
FROM CLIENTES
M)
SELECT id_sector, SUM(saldo_actual) AS saldo
FROM CLIENTES
GROUP BY id_sector
O)
select fecha_comprobante, detalle, iva, desc_tipo_movim
from CTACTE, TIPOS_MOVIMIENTOS
where CTACTE.id_tipo_movim = TIPOS_MOVIMIENTOS.id_tipo_movim
and desc_tipo_movim like '%Factura%'
and fecha_comprobante between '2000-11-01' and '2000-11-30'
P)
select SUM(iva)
from CTACTE, TIPOS_MOVIMIENTOS
where CTACTE.id_tipo_movim = TIPOS_MOVIMIENTOS.id_tipo_movim
and desc_tipo_movim like '%Factura%'
and fecha_comprobante between '2000-11-01' and '2000-11-30'
Q) Obtenga el saldo adeudado por los clientes agrupados por vendedor.
SELECT id_vendedor, SUM(saldo_actual)
FROM CLIENTES
GROUP BY id_vendedor
R) En el listado anterior agregar el nombre del vendedor.
SELECT apellido_vendedor, CLIENTES.id_vendedor, SUM(saldo_actual)
FROM CLIENTES, VENDEDORES
WHERE CLIENTES.id_vendedor= VENDEDORES.id_vendedor
GROUP BY CLIENTES.id_vendedor
S) Obtenga el saldo adeudado por los clientes agrupados por vendedor. Teniendo en cuenta solo los casos en los que el total adeudado por vendedor sea mayor a cero. En el listado se debe mostrar el apellido del vendedor.
SELECT apellido_vendedor, CLIENTES.id_vendedor, SUM(saldo_actual)
FROM CLIENTES, VENDEDORES
WHERE CLIENTES.id_vendedor= VENDEDORES.id_vendedor
GROUP BY CLIENTES.id_vendedor
HAVING SUM(saldo_actual) > 0
T) Total de ventas netas de IVA de cada cliente
SELECT id_cliente, SUM(importe_total - iva)
FORM CTACTE
GROUP BY id_cliente
U)Listado de los vendedores cuyo total de ventas netas de IVA es mayor que 700
SELECT id_vendedor, SUM(importe_total - iva)
FROM CTACTE
GROUP BY id_vendedor
HAVING SUM(importe_total - iva) > 700
Comentarios
Publicar un comentario