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.
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


0