Buscar este blog

EJERCICIOS ADICIONALES SQL

A)Obtener un listado de clientes de la ciudad de Córdoba con saldo superior
a su límite de crédito o que tengan su cuenta corriente suspendida. Esto
último sin importar la ciudad donde residan.
Select ciudad_cli, nombre_cliente, id_cliente, cuit, saldo_actual, limite_credito, ctacte_susp FROM CLIENTES WHERE (saldo_actual > limite_credito AND ciudad_cli LIKE ‘C%’) OR ctacte_susp LIKE ‘s’

B)Obtener un listado de clientes con saldo superior a su límite de crédito y
que residan en el barrio Centro o Alto Alberdi de la ciudad de Córdoba

select id_cliente, barrio_cli, nombre_cliente,id_provincia, saldo_actual, limite_credito from CLIENTES where saldo_actual>limite_credito AND barrio_cli="centro" OR barrio_cli= "alto alberdi"

C)Obtener un listado de los comprobantes del vendedor Martínez. Indicar
nombre del cliente, prefijo y número del comprobante e importe total.

select nombre_cliente, prefijo_comprobante, numero_comprobante, importe_total, VENDEDORES.id_vendedor, apellido_vendedor FROM CTACTE, VENDEDORES WHERE CTACTE.id_vendedor = VENDEDORES.id_vendedor and apellido_vendedor like 'martinez'

D)Obtener el mismo listado anterior pero mostrando también la descripción
del tipo de movimiento (tabla TIPOS_MOVIMIENTO).
SELECT prefijo_comprobante, numero_comprobante, importe_total, apellido_vendedor, TIPOS_MOVIMIENTOS.id_tipo_movim, CTACTE.id_vendedor,
CLIENTES.nombre_cliente
FROM CLIENTES, CTACTE, VENDEDORES,TIPOS_MOVIMIENTOS
WHERE apellido_vendedor LIKE '%Martinez'

E)Obtener un listado del nombre y apellido de aquellos vendedores que
hicieron ventas por sobre el limite de crédito asignado a los clientes,
identificando además los nombres de los clientes que se encuentran en esa
situación, su saldo actual, el límite de crédito, y el exceso de crédito
(diferencia entre límite de crédito y saldo actual). Ordenar la información
por exceso de crédito.
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)Obtener el movimiento de cuenta corriente número 9920. Mostrar todos los
campos de la tabla CTACTE.
select CTACTE.nro_movim_ctacte, id_cliente, id_vendedor, id_tipo_movim, id_provincia, prefijo_comprobante, numero_comprobante, letra_comprobante, nombre_cliente, cuit, fecha_comprobante, debe_haber, detalle, neto_gravado, neto_no_gravado, iva, importe_total, saldo_no_cancelado, tipo_iva, cheques, efectivo from CTACTE where nro_movim_ctacte = 9920

G)Obtener el detalle del movimiento de cuenta corriente número 9920. Mostrar
todos los campos de la tabla DETALLE_MOVIM_CTACTE.
select nro_movim_ctacte, id_producto, cantidad, precio, debe_haber, lista_precio, alicuota_iva from DETALLE_MOVIM_CTACTE where nro_movim_ctacte = 9920

H)Obtener el detalle del movimiento de cuenta corriente número 9920. Mostrar
descripción del artículo, cantidad y precio. Relacionar con la tabla
INVENTARIO
select nro_movim_ctacte, descripcion_producto, DETALLE_MOVIM_CTACTE.id_producto, precio, INVENTARIO.cantidad FROM DETALLE_MOVIM_CTACTE, INVENTARIO WHERE DETALLE_MOVIM_CTACTE.id_producto = DETALLE_MOVIM_CTACTE.id_producto AND nro_movim_ctacte = 9920

I)Explique porqué en el segundo caso sólo se listan dos registros, mientras
que en el primero (cuando no se incluye la descripcion de los articulos) se
muestran más de 2 registros para el movimiento 9920.
En el segundo caso se listan dos registros al relacionar la tabla DETALLE_MOVIM_CTACTE con la tabla INVENTARIO, dado que esta tabla nos muestra el producto que se encuentra en el momento en la empresa.
En el punto anterior consultamos un registro histórico de movimientos.

J)Obtenga la sumatoria de todos los saldos de los clientes. (Saldo total a
cobrar de clientes)
select SUM(saldo_no_cancelado) as Saldo_total_a_cobrar_de_clientes FROM CTACTE

K)Obtenga el saldo promedio de los clientes, sin incluir los que tienen saldo
cero o negativo.
SELECT AVG(saldo_actual) FROM CLIENTES WHERE saldo_actual>0

L)Obtenga el mayor saldo adeudado por un cliente.
Select MAX(saldo_actual) FROM CLIENTES where saldo_actual<0

M)Se desea conocer la cantidad de clientes que tiene asignado cada vendedor
Select COUNT(id_cliente), VENDEDORES.id_vendedor, nombre_vendedor, apellido_vendedor FROM CLIENTES, VENDEDORES GROUP BY id_vendedor

N)Realice el mismo ejercicio anterior pero mostrando además el apellido y
nombre del vendedor. Ordenar el listado alfabéticamente por apellido de
vendedor
SELECT COUNT(id_cliente), VENDEDORES.id_vendedor, nombre_vendedor, apellido_vendedor FROM CLIENTES, VENDEDORES GROUP BY id_vendedor ORDER BY apellido_vendedor

O)Obtenga el importe del Débito Fiscal de IVA devengado en el período
noviembre de 2000.
(Tenga en cuenta que debe incluir solo las facturas y excluir las notas de crédito y los
recibos de cobranza)
select sum(iva), fecha_comprobante, CTACTE.id_tipo_movim, TIPOS_MOVIMIENTOS.desc_tipo_movim from CTACTE, TIPOS_MOVIMIENTOS
where CTACTE.id_tipo_movim = TIPOS_MOVIMIENTOS.id_tipo_movim and fecha_comprobante like '2000-11%' and desc_tipo_movim like 'VE%'

P)Obtenga un listado de IVA Ventas que respalde el importe anterior.
select iva, fecha_comprobante, CTACTE.id_tipo_movim, TIPOS_MOVIMIENTOS.desc_tipo_movim from CTACTE, TIPOS_MOVIMIENTOS
where CTACTE.id_tipo_movim = TIPOS_MOVIMIENTOS.id_tipo_movim and fecha_comprobante like '2000-11%' and desc_tipo_movim like 'VE%'