Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una 3° tabla

Estas en el tema de Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una 3° tabla en el foro de Mysql en Foros del Web. Hola soy nuevo en esto de MySQL y quisiera que me ayudaran con este problema: Tengo una tabla llamada Empleados en la cual esta el ...
  #1 (permalink)  
Antiguo 20/10/2014, 09:34
 
Fecha de Ingreso: octubre-2014
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una 3° tabla

Hola soy nuevo en esto de MySQL y quisiera que me ayudaran con este problema:

Tengo una tabla llamada Empleados en la cual esta el ID,Nombre,Cantidad_Venta

Tengo una segunda tabla llamada Producto en la cual esta el ID,Precio

y una 3° tabla llamada records donde esta Ventas que son todas las ventas del empleado.

Lo que quiero es que con un trigger me multiplique la Cantidad_venta de la tabla Empleados y Precio de la tabla Producto y el resultado lo guarde en la tabla records en la columna ventas


De antemano Gracias
  #2 (permalink)  
Antiguo 20/10/2014, 12:03
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 11 años, 4 meses
Puntos: 9
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

Hola,

No nos has enviado la definición de las tablas ya que imagino que las tres tablas tienen campos que las unen.

Si puedes envíanoslo y te ayudaremos más facilmente.

Saludos.
  #3 (permalink)  
Antiguo 20/10/2014, 12:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

Cita:
Iniciado por Adonay_Guzman Ver Mensaje
Hola soy nuevo en esto de MySQL y quisiera que me ayudaran con este problema:

Tengo una tabla llamada Empleados en la cual esta el ID,Nombre,Cantidad_Venta

Tengo una segunda tabla llamada Producto en la cual esta el ID,Precio

y una 3° tabla llamada records donde esta Ventas que son todas las ventas del empleado.

Lo que quiero es que con un trigger me multiplique la Cantidad_venta de la tabla Empleados y Precio de la tabla Producto y el resultado lo guarde en la tabla records en la columna ventas


De antemano Gracias
Si tienes una tabla de Empleados, otra de Productos, y una de Venta donde se relaciona cada venta con cada producto vendido (Ventas deberían ser dos tablas como mínimo en realidad), no necesitas poner esa información en la tabla de emeplados, y ni siquiera guardarla. Con sólo realizar una consulta podrías obtener la misma información en forma dinámica y actualizada.
Un simple
Código SQL:
Ver original
  1. SELECT E.id_empleado, E.Nombre, P.NombreProducto, COUNT(P.id_Producto) TotalventasEmpleado
  2. FROM Empleado E
  3.     INNER JOIN Venta V ON E.id_empleado = V.id_empleado
  4.     INNER  JOIN Producto P ON V.id_producto = P.id_producto
  5. GROUP BY E.id_empleado, V.id_producto;
Te devolvería el total de productos vendidos por emplado y por producto, por ejemplo. De ese mismo modo, de acuerdo a la forma como se hagan las diferentes consultas podrás obtener los reprtes necesarios, sin siquiera tener que escribir un trigger.

Los trigger no son una buna opción para este tipo de tareas, y además lo campos calculados no están permitidos en el modelo relacional (son una violacion al mismo), además de requerir procesos adicionales para mantener consistencia de datos.
No son eficientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 21/10/2014, 07:57
 
Fecha de Ingreso: octubre-2014
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

Cita:
Iniciado por ccliment Ver Mensaje
Hola,

No nos has enviado la definición de las tablas ya que imagino que las tres tablas tienen campos que las unen.

Si puedes envíanoslo y te ayudaremos más facilmente.

Saludos.
Bueno Ccliment

Te explico

Tengo la tabla Productos donde esta

-IDProducto
-Descripcion
-Marca
-Precio

La tabla Empleados donde esta

-IDEmpleado
-Nombre
-Apellido
-IDProducto
-Cantidad_Vendida
-Fecha

(aquí asemos la condición que si el IDProducto = al IDProducto de la tabla Productos entonces que multiplique el campo Cantidad_Vendida por la Columna Precio de la tabla Productos y lo ingrese en la tabla Records en la columna Ventas)

Y la Tabla Records donde son las ventas que el empleado realiza, donde esta:

-IDRecords
-ID_Empleado
-Ventas

(aquí hacemos una condicion si el IDEmpleado es = al IDEmpleado de la tabla Empleados que vaya actualizando el dato Ventas deacuerdo alas ventas que reilase )


En pocas palabras es lo que deseo hacer

Espero me puedas ayudar
  #5 (permalink)  
Antiguo 21/10/2014, 08:09
 
Fecha de Ingreso: octubre-2014
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Un simple
Código SQL:
Ver original
  1. SELECT E.id_empleado, E.Nombre, P.NombreProducto, COUNT(P.id_Producto) TotalventasEmpleado
  2. FROM Empleado E
  3.     INNER JOIN Venta V ON E.id_empleado = V.id_empleado
  4.     INNER  JOIN Producto P ON V.id_producto = P.id_producto
  5. GROUP BY E.id_empleado, V.id_producto;
Te devolvería el total de productos vendidos por emplado y por producto, por ejemplo. De ese mismo modo, de acuerdo a la forma como se hagan las diferentes consultas podrás obtener los reprtes necesarios, sin siquiera tener que escribir un trigger.
Bueno gnzsoloyo

Lo entiendo muy bien ahora lo que estoy creando es un sitio php donde estoy graficando los datos de los empleados deacuerdo a sus ventas realizadas y me diga cual es el empleado que ha vendido mas por medio de Graficas.

Bueno si lo ago por medio de un select como me lo sugieres tendria que estar creando la consulta seguidamente antes de graficarlos y en cambio si lo guardo en una tabla el dato ya esta ayi y al graficarlo tengo un lugar specifico de donde tomar los datos sin nesesidad de hacer la consulta primero y luego graficarlos.

Espero que me comprendas y puedas ayudarme
  #6 (permalink)  
Antiguo 21/10/2014, 08:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

Cita:
Espero que me comprendas y puedas ayudarme
Yo te entiendo, lo que tienes que tener en cuenta es que el modelo que planteas es incorrecto desde la optica del diseño de estructura de datos, y resulta ineficiente por necesitar proceso adicionales para mantener consistencia e intergidad de datos.
Este tipo de cosas ya se razonó hace más de una década, y quienes crearon el modelo relacional de bases de datos llegaron concluyeron que es más eficiente no guardar datos calculables.
Para decirtelo en pocas palabras, generar calculos en una consulta es más eficiente y preciso que almacenar sumatorias de datos en una tabla. Aunque te parezca increíble. Hay mucha literatura que lo expresa, basada en las experiencias del mundo real.
Pero más alla de eso, el modelo de tabla que propones no sirve:
Cita:
La tabla Empleados donde esta

-IDEmpleado
-Nombre
-Apellido
-IDProducto
-Cantidad_Vendida
-Fecha
Esa tabla sólo servirá pàra guardar un único producto por empleado, y no más. Y si la idea es guardar la lista de productos, mas la lista de ventas de cada uno en dos campos, desde ya te digo que eso es peor aún. Sería un campo multivaluado, cosa prohibida en el modelo relacional, y totalmente inservible a nivel de consultas.
Lo correcto, si un mismo empleado vende más de un producto es crear una tabla que relacione a cada empleado con cada producto que vendió, y donde almacenes la cantidad. Esto es obligatorio porque la relación entre Empleadoo y Producto es N:M, donde la tabla es mandatoria.
Por otro lado, ¿te das cuenta que el esquema que planteas no te permitirá realziar reportes cornolçogicos de ningún tipo?
Es decir, con ese esquema no podrás saber nada de las ventas por semana, mes o año realizadas por un mismo emeplado En cambio realizando las consultas propuestas si se peude hacer.
Si el problema es que no quieres crear consultas, bueno, lamento decirte que es inevitable si lo que quieres es hacer un sistema que te devuelva información completa.... Y de todos modos puedes crear los SP necesarios para cubrir esos reportes. Es lo que se suele hacer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/10/2014, 09:58
 
Fecha de Ingreso: octubre-2014
Mensajes: 8
Antigüedad: 10 años
Puntos: 0
Respuesta: Multiplicar dos campos de tablas diferentes y el reultado guardarlo en una

OK lo entiendo.

Te agradezco mucho por tomarte el tiempo y Pondré en Practica lo que me Propones.

Etiquetas: campos, columnas, multiplicar, tablas, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:31.