domingo, 8 de abril de 2012

24 - Columnas calculadas.

Es posible obtener salidas en las cuales una columna sea el resultado de un cálculo y no un campo de una tabla.

Si queremos ver los títulos, precio y cantidad de cada libro escribimos la siguiente sentencia:

select titulo,precio,cantidad
  from libros;
 
Si queremos saber el monto total en dinero de un título podemos multiplicar el precio por la cantidad por cada título, pero también podemos hacer que MySQL realice el cálculo y lo incluya en una columna extra en la salida:
select titulo, precio,cantidad,precio*cantidad
  from libros;
 
Si queremos saber el precio de cada libro con un 10% de descuento podemos incluir en la sentencia los siguientes cálculos:

select titulo, precio,precio*0.1,precio-(precio*0.1)
  from libros;
 
 
Problema Resuelto:  
 
 
Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla, si existe:

drop table if exists libros; 
 Creamos la tabla:

create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30), editorial varchar(15), precio decimal(5,2) unsigned, cantidad smallint unsigned, primary key (codigo) ); 
 Ingresamos algunos registros:

insert into libros (titulo,autor,editorial,precio,cantidad) 
values('El aleph','Borges','Planeta',15,100); 
 insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Martin Fierro','Jose Hernandez','Emece',22.20,200);
 insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Antologia poetica','Borges','Planeta',40,150); 
insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Aprenda PHP','Mario Molina','Emece',18.20,200);
 insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Cervantes y el quijote','Borges','Paidos',36.40,100); 
 insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Manual de PHP', 'J.C. Paez', 'Paidos',30.80,100); 
insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Harry Potter y la piedra filosofal','J.K. Rowling','Paidos',45.00,500); 
insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Harry Potter y la camara secreta','J.K. Rowling','Paidos',46.00,300); 
insert into libros (titulo,autor,editorial,precio,cantidad) 
values('Alicia en el pais de las maravillas','Lewis Carroll','Paidos',null,50); 

Para obtener el monto total en dinero de un título podemos multiplicar el precio por la cantidad, por cada título, MySQL realiza el cálculo y lo incluye en una columna extra en la salida:

select titulo, precio,cantidad,precio*cantidad from libros; 
 
Para saber el precio de cada libro con un 10% de descuento podemos incluir en la sentencia los siguientes cálculos:

select titulo, precio,precio*0.1,precio-(precio*0.1) from libros; 
 
 
 
Problema Propuesto:
 
Una empresa almacena los datos de sus empleados en una tabla "empleados".

1- Elimine la tabla "empleados" si existe.

2- Cree una tabla llamada "empleados" con la estructura necesaria 
para almacenar la siguiente información:
 
 - nombre del empleado,
 - documento,
 - sexo,
 - domicilio,
 - sueldo básico (hasta 9999.99),
 - hijos a cargo,
 - clave primaria: documento.

3- Ingrese algunos registros:
 
(nombre,documento,sexo,sueldobasico,hijos)
 Juan Perez,22333444,m,300,1
 Ana Acosta,21333444,f,400,2
 Alberto Lopez,24333444,m,600,0
 Carlos Sanchez,30333444,m,550,3
 Mariana Torres,23444555,f,600,1
 Marcos Garcia,23664555,m,1500,2

4- La empresa está pensando en aumentar un 10% el sueldo a los empleados, 
y quiere saber a cuánto subiría cada sueldo básico, para ello usamos la 
siguiente sentencia en la cual incluimos una columna que hará el cálculo 
de cada sueldo más el 10%: 
 
5- La empresa paga un salario familiar por hijos a cargo, $200 por cada hijo. 
Necesitamos el nombre del empleado, el sueldo básico, la cantidad de hijos 
a cargo, el total del salario familiar y el suedo final (incluyendo el 
salario familiar): 
 
 
Otros problemas: 
Un comercio vende artículos de librería y papelería. Almacena en una tabla 
los siguientes datos:
 
 - codigo: int unsigned auto_increment, clave primaria,
 - nombre: varchar(30),
 - precio: decimal(5,2),
 - cantidad: smallint unsigned.

1- Elimine la tabla, si existe.

2- Cree la tabla con la estructura necesaria para almacenar 
los datos descriptos anteriormente.

3- Ingrese los siguientes registros:
  (nombre,precio,cantidad)
   lapices coloresx6,1.4,100
   lapices coloresx12,2.5,100
   lapices coloresx24,4.7,100
   goma tinta,0.2,150
   birome,1.2,200
   escuadra,3.2,200
   compás plástico,5,200
   compás metal,8.4,250

4- El precio representa el costo del artículo al comprarlo. 
Este comercio vende sus artículos por mayor y por menor, para 
la venta minorista incrementa el precio de costo en un 10%, 
para la venta mayorista lo incrementa en un 5%. Muestre los 
precios de cada artículo y calcule en 2 columnas diferentes el 
precio de cada uno de ellos al venderse por mayor y por menor:
 
5- El gerente de dicho comercio necesita saber cuánto dinero 
hay invertido en cada artículo, para ello, necesitamos multiplicar 
el precio de cada artículo por la cantidad:
 
  
 
   

5 comentarios:

  1. Gracias por todo. Me está resultando muy útil

    ResponderEliminar
  2. Cabrón si te vas a copiar pon la fuente esa información es de la página http://www.tutorialesprogramacionya.com/

    ResponderEliminar
  3. Cabrón si te vas a copiar pon la fuente esa información es de la página http://www.tutorialesprogramacionya.com/

    ResponderEliminar