MySQL - Agrupacion de consultas

 
Vista:
sin imagen de perfil

Agrupacion de consultas

Publicado por Dani (8 intervenciones) el 27/06/2017 18:47:41
Saludos!

Vereis, estoy con algo desde hace dias y no consigo sacarlo. Tengo tres tablas de una base de datos, una que se llama delegados, otra que se llama telefonos, y otra que se llama registro_tel. En telefonos, hay un campo que es 'disponible' que solo puede ser SI o NO. Y quiero que cuando sea NO se guarden todas las filas en registro_tel. Esto para empezar no lo he conseguido, solo he podido hacer un trigger que lo almacene, pero no he podido meter la condicion, asi que se guarda tanto si es SI como si es NO.

En registro_tel, hay los mismos campos que en telefonos, pero quiero que haya un campo mas que sea nombre(que he creado a mano) donde se guarde el nombre asociado a telefonos de la tabla delegados. Y no se como sacar el campo nombre de delegados, para que tambien se guarde en registro_tel.

Alguna idea?

He intentado explicarlo de la mejor manera posible.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Agrupacion de consultas

Publicado por Nicolas (46 intervenciones) el 28/06/2017 16:47:36
Hola Dani.
Me suena a que tienes mucha información que se duplica, puede ser??
Si puedes mostrar un poco más tus tablas quizás te podamos dar una mano.
Abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Agrupacion de consultas

Publicado por Dani (8 intervenciones) el 28/06/2017 16:57:11
La verdad es que me serviria si me pudierais ayudar con el trigger que he intentado hacer pero que no funciona. Es la condicion la que realmente no funciona porque sin condicion si que funciona.

El trigger es este:

1
2
3
4
5
CREATE TRIGGER `registro` AFTER UPDATE ON `telefonos`
 FOR EACH ROW
if new.disponible=NO
begin
 insert into registro_tel (numero_delegado,numero_largo,numero_corto,PIN,PUK,IMEI,caja,adaptador,cable,auriculares,disponible,proyecto,fecha_entrega,fecha_devolucion,robado) values (new.numero_delegado, new.numero_largo, new.numero_corto, new.PIN, new.PUK, new.IMEI, new.caja, new.adaptador, new.cable, new.auriculares, new.disponible, new.proyecto, new.fecha_entrega, new.fecha_devolucion, new.robado)

Quiero que cuando el campo disponible de la tabla telefonos sea NO, se inserte todo eso en registro.

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Agrupacion de consultas

Publicado por Nicolas (46 intervenciones) el 28/06/2017 21:00:06
Ok Dani.
Prueba este Trigger si hace lo que tu quieres:

1
2
3
4
5
6
CREATE TRIGGER `registro` AFTER UPDATE ON `telefonos FOR EACH ROW BEGIN
  CASE new.disponible
    WHEN  'NO' THEN
   insert into registro_tel (numero_delegado,numero_largo,numero_corto,PIN,PUK,IMEI,caja,adaptador,cable,auriculares,disponible,proyecto,fecha_entrega,fecha_devolucion,robado) values (new.numero_delegado, new.numero_largo, new.numero_corto, new.PIN, new.PUK, new.IMEI, new.caja, new.adaptador, new.cable, new.auriculares, new.disponible, new.proyecto, new.fecha_entrega, new.fecha_devolucion, new.robado);
  END CASE;
END;


Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Agrupacion de consultas

Publicado por Dani (8 intervenciones) el 29/06/2017 09:56:59
Buenas!

Muchas gracias por dedicarme tu tiempo. El trigger que has diseñado funciona, pero no se porque cuando quiero modificar el resto de columnas que no son "disponible" me da error y no me actualiza.

Alguna idea?

Muchas gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Agrupacion de consultas

Publicado por Dani (8 intervenciones) el 30/06/2017 17:14:36
Concretamente me da este error al intentar modificar las filas

1339 Case not found for CASE statement.

Alguna idea de porque?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar