MySQL
1. Insertar un registro en la tabla Pedido_Producto, los datos pueden ser elegidos de forma
libre siempre y cuando tengan un criterio adecuado
2. Incrementar el precio en un 25% de todos los productos cuyo saldo sea menor a 500
unidades
3. Mostrar el ID del pedido, nombre completo del cliente (1 sola columna), fecha del pedido,
Nombre del Representante y de la Oficina sucursal donde se realizó dicho pedido. Ordenar
por Oficina Sucursal
4. Mostrar el nombre completo de los clientes (1 sola columna), su Crédito y la cantidad de
Pedidos realizados
5. Mostrar el nombre del producto, su stock actual, su cantidad total requerida en pedidos
hasta la fecha, y su Saldo Histórico. Ordenar por nombre del Producto e incluir a todos los
productos registrados en la Base de Datos
Se entiende por Saldo Histórico de cada producto a la suma de su stock actual + su cantidad
total requerida en pedidos hasta la fecha
-- Insertar un registro en la tabla Pedido_Producto, los datos pueden ser elegidos de forma libre
siempre y cuando tengan un criterio adecuado
SELECT * FROM pedido_producto;
INSERT INTO pedido_producto (idPedido, idProducto, cantidad, precioUnitario)
VALUES (1, 4, 80, 2.5);
-- Incrementar el precio en un 25% de todos los productos cuyo saldo sea menor a 500 unidades
SELECT * FROM producto;
UPDATE producto SET precioBase=1.25*precioBase
WHERE saldo<500;
-- Mostrar el ID del pedido, nombre completo del cliente (1 sola columna), fecha del pedido, Nombre
del Representante y de la Oficina sucursal donde se realizó dicho pedido.
-- Ordenar por Oficina Sucursal
SELECT P.idPedido AS ID, CONCAT(C.apellidoPaterno, ' ', IFNULL(C.apellidoMaterno,''),' ', C.nombres)
AS Cliente, P.fecha AS 'Fecha del Pedido',
R.nombre AS 'Atendido Por:', O.nombreOficina AS Sucursal
FROM pedido P
INNER JOIN cliente C ON C.idCliente=P.idCliente
INNER JOIN representante R ON R.idRepresentante=P.idRepresentante
INNER JOIN oficina O ON O.idOficina=R.idOficina
ORDER BY 5;
-- Mostrar el nombre completo de los clientes (1 sola columna), su Crédito y la cantidad de Pedidos
realizados
SELECT CONCAT(C.apellidoPaterno, ' ', IFNULL(C.apellidoMaterno,''),' ', C.nombres) AS Cliente,
C.credito AS 'Crédito Bs.',
COUNT(P.idPedido) AS 'Cantidad de Pedidos'
FROM cliente C
INNER JOIN pedido P ON C.idCliente=P.idCliente
GROUP BY CONCAT(C.apellidoPaterno, ' ', IFNULL(C.apellidoMaterno,''),' ', C.nombres), C.credito
ORDER BY 1
SELECT P.descripcion AS Producto, P.saldo AS 'Stock Actual', SUM(PP.cantidad) AS 'Total Requerido',
P.saldo + SUM(PP.cantidad) AS 'Saldo Histórico'
FROM producto P
LEFT JOIN pedido_producto PP ON P.idProducto=PP.idProducto
GROUP BY P.descripcion, P.saldo
ORDER BY 1
SQL Server
1. Insertar una registro en la Tabla Servicio. Los datos pueden ser elegidos de forma libre
siempre y cuando tengan un criterio adecuado
RESUELTO
2. Listar el Nombre del Grupo y el Nombre del Servicio que pertenece a dicho grupo. Ordenar
por Nombre del Grupo
SELECT G.nombreGrupo AS 'Nombre del Grupo', S.nombreServicio AS Servicio
FROM grupo G
INNER JOIN subgrupo SG ON G.idGrupo=SG.idGrupo
INNER JOIN cuenta C ON C.idSubGrupo=SG.idSubGrupo
INNER JOIN servicio S ON S.idCuenta=C.idCuenta
ORDER BY 1
REPASO II
SQL Server:
1. Mostrar las Gestión (año) y el total Recaudado en dicha gestión de todas las facturas Válidas
registradas en la Base de Datos. Una factura es válida, si su estado es “V”. Ordenar por
gestión
SELECT YEAR(fecha) AS Gestión,
SUM(total) AS 'Total Recaudado Bs.'
FROM factura
WHERE estado='V'
GROUP BY YEAR(fecha)
ORDER BY 1
YEAR('2022-08-25') --> 2022
MONTH('2022-08-25') --> 8
DAY('2022-08-25') --> 25
2. Mostrar el ID, nombre del servicio y su total recaudado a la fecha. Incluir los servicios que
NO tuvieron movimiento. Ordenar por nombre de Servicio.
SELECT S.idServicio AS ID, S.nombreServicio AS Servicio,
ISNULL(SUM(D.importe),0) AS 'Total Recaudado Bs.'
FROM servicio S
LEFT JOIN detalleFactura D ON S.idServicio=D.idServicio
GROUP BY S.idServicio, S.nombreServicio
ORDER BY 2
ISNULL(VALOR, VALOR POR NULO) -- SQL SERVER
IFNULL(VALOR, VALOR POR NULO) -- MySQL
3. Mostrar el Nombre del Sub Grupo y la cantidad de Cuentas que tiene dicho Sub Grupo.
Ordenar por nombre del Sub Grupo.
SELECT S.nombreSubGrupo AS 'Nombre Sub Grupo', COUNT(C.idCuenta) AS 'Cantidad de Cuentas'
FROM subgrupo S
LEFT JOIN cuenta C ON S.idSubGrupo=C.idSubGrupo
GROUP BY S.nombreSubGrupo
ORDER BY 1