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

crear una tabla apartir de una consulta

Estas en el tema de crear una tabla apartir de una consulta en el foro de Mysql en Foros del Web. Hola Es posible crear una tabla apartir de una consulta relaizada a otro tabla y que se actualice al momento de actulizar la principal. Lo ...
  #1 (permalink)  
Antiguo 02/02/2006, 09:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
Pregunta crear una tabla apartir de una consulta

Hola

Es posible crear una tabla apartir de una consulta relaizada a otro tabla y que se actualice al momento de actulizar la principal.

Lo detallo tengo una tabla la cual se van insertando varias cantidades de los productos para hacer reservas

id 1 cocacola 50 unidades
id 2 naranjada 25 unidades
.....

estas cantidades se han de ir sumando por el id de cada producto ya que se pueden hacer varias peticiones de un mismo producto.

para relaizar la suma de las cantidades no hay problema sino genera la consulta pero lo que necesitaria es que me creara una tabla apartir de la consulta.

SELECT vm_reservas.r_id_producto, Sum(vm_reservas.r_reserva) AS total_reservas
FROM vm_reservas
GROUP BY vm_reservas.r_id_producto

un abrazo y muchas gracias.
  #2 (permalink)  
Antiguo 02/02/2006, 10:17
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
He conseguido hacer esto

CREATE TABLE vm_total_reservas
AS SELECT vm_reservas.r_id_producto, Sum(vm_reservas.r_reserva) AS total_reservas
FROM vm_reservas
GROUP BY vm_reservas.r_id_producto;

me crea la tabla pero no me actualiza si cambia algo en la tabla de reservas
  #3 (permalink)  
Antiguo 02/02/2006, 10:29
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
debes hacer una vista, es decir,

create view `vm_total_reservas`
as................................

También puedes reducir el número de columnas o ampliarlo, eso se suele usar para cuestiones de permisos...

Un saludo

Edito
Solo está disponible a partir de la versión 5 de MySQL
  #4 (permalink)  
Antiguo 02/02/2006, 10:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
Gracias jose, lo he probado pero me da el siguiente error

Error

consulta SQL: Documentación

CREATE VIEW vm_total_reservas AS SELECT vm_reservas.r_id_producto, Sum( vm_reservas.r_reserva ) AS total_reservas
FROM vm_reservas
GROUP BY vm_reservas.r_id_producto

MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax near 'VIEW vm_total_reservas
AS SELECT vm_reservas.r_id_producto, Sum(vm_reservas.r_r' at line 1
[ Volver ]
  #5 (permalink)  
Antiguo 02/02/2006, 10:43
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Que versión tienes de MySQL??? porque la sintaxis parece estar bien.
  #6 (permalink)  
Antiguo 02/02/2006, 11:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
es la 5, estoy mirando el manuel de mysql y tampoco veo nada extraño.
  #7 (permalink)  
Antiguo 02/02/2006, 11:11
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
No puede ser, a mi me va de maravilla (cambiando los nombres de las tablas y los campos, pero el mismo tipo de vista).
Los parentesis del sum los tienes así?????No dejes espacios entre ello haz asi:
Sum(vm_reservas.r_reserva), por lo demás todo parece OK
  #8 (permalink)  
Antiguo 02/02/2006, 11:19
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
estas cosas son las que me ponen de mala leche macho, es increible si hago

CREATE TABLE vm_total_reservas AS SELECT r_id_producto, Sum(r_reserva) AS total_reservas FROM vm_reservas
GROUP BY r_id_producto

no hay problema

pero si hago

CREATE VIEW vm_total_reservas AS SELECT r_id_producto, Sum(r_reserva) AS total_reservas FROM vm_reservas
GROUP BY r_id_producto

es cuando me da el problema, solo cambia table por view.. ya no se que hacer, estoy mirando si se necesitan algun tipo de permisos en mysql o algo para crearlo, pero no lo se

te todas formas muchas gracias.
  #9 (permalink)  
Antiguo 02/02/2006, 11:22
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Buf, pues una de dos, o tu MySQL está loco, o no tienes la versión 5.1

De todas formas, si si la tienes (a lo mejor es beta), prueba a descargar la última 5.x que haya, quizá así se te solucione.
  #10 (permalink)  
Antiguo 02/02/2006, 11:32
 
Fecha de Ingreso: noviembre-2005
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 1
lo mirare sino ya me busco la vida haber que puedo hacer.. pero por si acaso he encontrado este codigo

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW
`partes_total` AS select `repuestos`.`idparte` AS `idparte`,sum(`repuestos`.`cantidad`)
AS `comprado`,sum(`rep_ot`.`cantidad`) AS `usado`
from (`repuestos`
left join `rep_ot` on((`repuestos`.`idrepuesto` = `rep_ot`.`idrepuesto`))) group by
`repuestos`.`idparte`;

lo importante es la primera liena era lo que te comentaba de los permisos de root y eso para crear las tablas view

bueno lo dicho muchas gracias.
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 17:13.