EJERCICIOS ADICIONALES SQL
Resultados de ejercicios 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 id_cliente, ciudad_cli, saldo_actual, ctacte_susp, limite_credito, id_provincia
from CLIENTES where id_provincia like '%CBA%' and saldo_actual>limite_credito or ctacte_susp = '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, saldo_actual, limite_credito, ciudad_cli, barrio_cli from
CLIENTES where saldo_actual>limite_credito and barrio_cli = 'Centro'
or barrio_cli = 'Alto Alberdi' and ciudad_cli = 'Cordoba'
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
from CTACTE, VENDEDORES where CTACTE.id_vendedor =
VENDEDORES.id_vendedor
and apellido_vendedor like"Martínez"
D) Obtener el mismo listado anterior pero mostrando también la descripción
del tipo de movimiento (tabla TIPOS_MOVIMIENTO).
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) 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 * 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 * 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
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) 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.
Esto ocurre porque en la tabla Inventario no existe uno de los artículos que forman parte del
detalle del movimiento en cuenta corriente.
J) Obtenga la sumatoria de todos los saldos de los clientes. (Saldo total a
cobrar de clientes)
select sum(saldo_actual) as saldo_total from CLIENTES
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
M) Se desea conocer la cantidad de clientes que tiene asignado cada vendedor
select id_vendedor, count(id_cliente) as 'cantidad de clientes' from CLIENTES
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) as 'cant de clientes', CLIENTES.id_vendedor,
VENDEDORES.apellido_vendedor, nombre_vendedor from CLIENTES, VENDEDORES
where CLIENTES.id_vendedor = VENDEDORES.id_vendedor 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%'
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 id_cliente, ciudad_cli, saldo_actual, ctacte_susp, limite_credito, id_provincia
from CLIENTES where id_provincia like '%CBA%' and saldo_actual>limite_credito or ctacte_susp = '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, saldo_actual, limite_credito, ciudad_cli, barrio_cli from
CLIENTES where saldo_actual>limite_credito and barrio_cli = 'Centro'
or barrio_cli = 'Alto Alberdi' and ciudad_cli = 'Cordoba'
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
from CTACTE, VENDEDORES where CTACTE.id_vendedor =
VENDEDORES.id_vendedor
and apellido_vendedor like"Martínez"
D) Obtener el mismo listado anterior pero mostrando también la descripción
del tipo de movimiento (tabla TIPOS_MOVIMIENTO).
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) 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 * 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 * 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
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) 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.
Esto ocurre porque en la tabla Inventario no existe uno de los artículos que forman parte del
detalle del movimiento en cuenta corriente.
J) Obtenga la sumatoria de todos los saldos de los clientes. (Saldo total a
cobrar de clientes)
select sum(saldo_actual) as saldo_total from CLIENTES
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
M) Se desea conocer la cantidad de clientes que tiene asignado cada vendedor
select id_vendedor, count(id_cliente) as 'cantidad de clientes' from CLIENTES
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) as 'cant de clientes', CLIENTES.id_vendedor,
VENDEDORES.apellido_vendedor, nombre_vendedor from CLIENTES, VENDEDORES
where CLIENTES.id_vendedor = VENDEDORES.id_vendedor 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%'