SQL Server - Hacer un Insert into Select con campos adicionales

 
Vista:

Hacer un Insert into Select con campos adicionales

Publicado por Jason Gonzales (4 intervenciones) el 17/06/2010 23:18:27
Tengo por ejemplo una tabla donde almaceno facturas del mes:

Facturas:
Numero
Cliente
Fecha
Descuento
Subtotal
Impuesto
Total

Pero pasado el mes esas facturas de esa tabla Factura pasan a una tabla FacturaHistorico que tiene exactamente la misma estructura que la tabla Factura a excepcion de que tiene dos campos adicionales: Mes y Año

Si las dos tablas tuvieran la misma estructura podria hacer esto:

Insert into FacturaHistorico Select * from Factura

¿Pero como puedo hacerlo agregandole ademas los otros dos campos desde dos variables que tengo. Esto con el fin de no tener que hacer un Select de los registros de Factura y recorrer uno por uno para hacer los insert a la tabla FacturaHistorico y asi agregar los dos campos que faltan?

Gracias
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
Imágen de perfil de roger

RE:Hacer un Insert into Select con campos adiciona

Publicado por roger (173 intervenciones) el 18/06/2010 05:03:52
si te puedes evitar el select * y especificar los campos, mucho mejor, y tambien los campos del insert, son buenas practicas y mejoran el rendimiento de tu consulta

y puedes intentar algo como
Insert into FacturaHistorico(campo,campo2,campo3)
Select campo,campo2,campo3,YEAR(GETDATE()),MONTH(GETDATE()) from Factura

Ó si lo tienes en variables

Insert into FacturaHistorico(campo,campo2,campo3)
Select campo,campo2,campo3,@variableAnio,@variableMes from Factura

Saludos
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

RE:Hacer un Insert into Select con campos adiciona

Publicado por Juanma Cruz (59 intervenciones) el 25/06/2010 11:53:17
Muy bien apuntado, Roger, aunque te dejas fuera los campos de año y mes en la tabla destino; deben coincidir la cantidad de campos en ambos:

Insert into FacturaHistorico(campo,campo2,campo3, ANHO, MES)
Select campo,campo2,campo3, @variableAnio, @variableMes from Factura
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

RE:Hacer un Insert into Select con campos adiciona

Publicado por Andres Itzcoatl (1 intervención) el 22/10/2015 00:58:18
Hola Roger tengo un proble parecido tengo dos tablas

Tabla : Telefono;
id
Numero
Marca
modelo

Tabla: Usuario;
id
nombre
NoControl
Numero

RegistroHistrico;
id
fecha
idUsuario
nombreUsuario
NoControlUsuario
NumeroTelefono
MarcaTelefono
idTelefono

como puede llegar la tabla RegistroHistrico usando las tablas usuario y telefono
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