Nota: Para realizar los ejercicios necesitarás la base de datos Gestion8.
Modificar los datos de una tabla.
Subir un 5% el precio de todos los productos del fabricante QSA. (3 filas afectadas)
UPDATE productos SET precio = ROUND(precio * 1.05,2) WHERE idfab = 'qsa';
Resultado:
idfab | idproducto | precio |
---|---|---|
qsa | xk47 | 3,73 |
qsa | xk48 | 1,41 |
qsa | xk48a | 1,55 |
Poner a cero las ventas y cuota del empleado Luis Garcia, si hay varios con el mismo nombre actualizarlos todos. (1 filas afectadas)
UPDATE empleados set ventas=0, cuota=0 WHERE nombre = 'Luis Garcia';
Cambiar los empleados de la oficina 40 a la oficina 30. (3 filas afectadas)
UPDATE empleados SET oficina = 30 WHERE oficina = 40;
Actualizar los pedidos del fabricante rei dejando como representante el empleado asignado al cliente (2 filas afectadas). Lo más cómodo es, primero sacar la consulta que obtiene los pedidos a actualizar, y después convertirla a UPDATE.
UPDATE pedidos SET rep=numemp FROM pedidos inner join (clientes inner join empleados ON repclie=numemp) ON clie=numclie WHERE rep <> numemp and fab ='rei'
Estos son los pedidos afectados y cómo deben quedar, los pedidos en los que el representante ya es el correcto no se tienen que actualizar:
codigo | numpedido | clie | rep | fab |
---|---|---|---|---|
20 | 113042 | 2113 | 104 | rei |
21 | 113045 | 2112 | 108 | rei |
Actualizar el campo objetivo de la oficina 30 con las cuotas de los empleados asignados a ella.
UPDATE oficinas set oficinas.objetivo =(SELECT SUM (cuota) from empleados where oficinas.oficina= empleados.oficina) where oficina=30;
Actualizar el precio de los productos de BIC obteniendo el nuevo valor del precio medio del artículo vendido en los pedidos (si hay pedidos). Primero sacamos la lista y después redactar la UPDATE. Se puede hacer de dos formas, actualizando únicamente los productos de BIC que tienen pedidos, o actualizando todos los productos de BIC. En cualquiera de los dos casos los productos deberán acabar con el precio que aparece en la columna Nuevo.
UPDATE productos SET precio = round(ISNULL((SELECT avg(importe/cant) FROM pedidos WHERE fab=idfab and producto=idproducto),precio),2) WHERE idfab='bic';
Estos son los productos que tenemos de BIC, precio es el precio actual, media es el precio medio de pedidos, y nuevo el valor que deberá quedar en precio después de actualizar:
idfab | idproducto | precio | media | nuevo |
---|---|---|---|---|
bic | 41003 | 6,52 | 5,1566 | 5,16 |
bic | 41089 | 2,25 | NULL | 2,25 |
bic | 41672 | 1,80 | NULL | 1,80 |
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.