MySQL - INSERT DE UN SELECT AGRUPADO

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado su posición en 2 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

INSERT DE UN SELECT AGRUPADO

Publicado por kachu (12 intervenciones) el 03/01/2022 14:33:14
Buenos días, recurro a ustedes pues estoy atascadisimo y bloqueado. Necesito hacer un INSERT de un SELECT. El SELECT es de los clientes cuya ultima venta fuera hace 30 días, este pienso que funciona bien:

SELECT DISTINCTROW c.id, c.NombreCliente, v1.UlFecha, Dias FROM clientes c
INNER JOIN (SELECT MAX(Fecha) as UlFecha, TIMESTAMPDIFF(day,MAX(Fecha),now()) Dias, idCliente FROM cabecerasventas GROUP BY idCliente) AS v1 ON c.id=v1.idCliente
INNER JOIN cabecerasventas v2 ON v1.UlFecha=v2.Fecha AND v1.idCliente=v2.idCliente
WHERE c.Baja=0 HAVING Dias>30 ORDER BY c.NombreCliente

Esta seleccion me devuelve la tabla correcta con los tres campos de los clientes. El problema lo tengo al necesitar hacer un INSERT en la otra tabla (revisiones) pero que no tiene todos los campos del SELECT intento algo como:

INSERT INTO revisiones (idCliente, Denominacion, Fecha) y ahora el SELECT .....

Es decir en la tabla revisiones solo van tres campos del SELECT pero Dias lo necesito para hacer el HAVING es complicado explicarlo.
Ruego y agradezco alguna sugerencia.
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: 22
Ha aumentado su posición en 2 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

INSERT DE UN SELECT AGRUPADO

Publicado por Jesus (12 intervenciones) el 03/01/2022 16:40:07
Perdon. Ruego disculpen en mi anterior pregunta al reescribir la sentencia me deje un criterio sin poner y considero que es clave. Vuelvo a escribir la consulta de seleccion de cuyo resultado quiero hacer un INSERT

SELECT DISTINCTROW c.id, c.NombreCliente, v1.UlFecha, Dias FROM clientes c INNER JOIN (SELECT MAX(Fecha) as UlFecha, TIMESTAMPDIFF(day,MAX(Fecha),now()) Dias, idCliente FROM cabecerasventas GROUP BY idCliente) AS v1 ON c.id=v1.idCliente
INNER JOIN cabecerasventas v2 ON v1.UlFecha=v2.Fecha AND v1.idCliente=v2.idCliente
WHERE v2.TipoDocumento=0 AND c.Baja=0 HAVING Dias>30 ORDER BY c.NombreCliente

Ruego disculpen el error.
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