Visual Basic - Hacer un Insert into Select con campos adicionales

Life is soft - evento anual de software empresarial
   
Vista:

Hacer un Insert into Select con campos adicionales

Publicado por Jason Gonzales (9 intervenciones) el 17/06/2010 23:16:44
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

RE:Hacer un Insert into Select con campos adiciona

Publicado por Pedro Luis (128 intervenciones) el 18/06/2010 08:37:56
Creo que te complicas la vida innecesariamente, no necesitas el mes y el año, tienes la fecha de la factura y siempre podras hacer un select where fecha> o < etc.
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 Jason Gonzales (9 intervenciones) el 18/06/2010 18:08:25
Bueno esq ese mes y año se refieren al mes de proceso en la que se encontraba la empresa cuando fueron incluidas las facturas, no necesariamente es la fecha de la factura pues eso es otra cosa. Y se han dado casos en que se hizo una factura en un mes, luego se cerro el mes y la factura se almaceno en la tabla historica ( que en ese momento no tenia el campo Mes y Año ) y luego por alguna razon que desconozco se ha vuelo a hacer la misma factura el siguiente mes, se cierra ese mes y cuando se trata de pasar la factura a la tabla historica pues crea valores duplicados y por ende un 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

RE:Hacer un Insert into Select con campos adiciona

Publicado por Julio (72 intervenciones) el 18/06/2010 20:32:18
Hola soy julio:

Yo tengo un soft en una empresa de ventas al por mayor, a mi me pidieron lo mismo practicamente que a vos, osea despues de un tiempo entrar a limpiar facturas pero sin perderlas.

Yo lo solucione poniendo en la tabla Factura un campo Estado, ese campo estado contiene dos posibles valores, uno es "ALTA", y el otro es "BAJA".

Entonces en alguna parte del soft le doy la opcion al usuario que limpie facturas antiguas.

Como:

Dos dtpicker o almanaques, selecciona la fecha desde, y la fecha hasta, un click en un command, y todas las facturas que esten entre esas fechas las paso a "BAJA"

luego si necesitan ver facturas antiguas.

Select * From Facturas Where Fecha Between (01/01/2008 AND 01/06/2008) And Estado = "Baja"

Osea en fin yo manejo las facturas con ALTA Y BAJA

Y CHAU PROBLEMA.....

BUENO SALUDOS......JULIO

mmm, consejito si me permitis, con todo respeto, no te compliques tanto transportando datos de una tabla a otra, mas bien buscale la vuelta para siempre trabajar en la misma.
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 Julio (72 intervenciones) el 18/06/2010 20:31:15
Hola soy julio:

Yo tengo un soft en una empresa de ventas al por mayor, a mi me pidieron lo mismo practicamente que a vos, osea despues de un tiempo entrar a limpiar facturas pero sin perderlas.

Yo lo solucione poniendo en la tabla Factura un campo Estado, ese campo estado contiene dos posibles valores, uno es "ALTA", y el otro es "BAJA".

Entonces en alguna parte del soft le doy la opcion al usuario que limpie facturas antiguas.

Como:

Dos dtpicker o almanaques, selecciona la fecha desde, y la fecha hasta, un click en un command, y todas las facturas que esten entre esas fechas las paso a "BAJA"

luego si necesitan ver facturas antiguas.

Select * From Facturas Where Fecha Between (01/01/2008 AND 01/06/2008) And Estado = "Baja"

Osea en fin yo manejo las facturas con ALTA Y BAJA

Y CHAU PROBLEMA.....

BUENO SALUDOS......JULIO

mmm, consejito si me permitis, con todo respeto, no te compliques tanto transportando datos de una tabla a otra, mas bien buscale la vuelta para siempre trabajar en la misma.
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 Jason Gonzales (9 intervenciones) el 18/06/2010 23:04:13
Cierto lo que vos decis Julio, pero la verdad llevo tiempo ya programando con esta estructura de BD y creo q perderé tiempo valioso en arreglar el codigo para trabajar todo en una misma tabla pues tengo muchas otras tablas en las que debo de hacer lo mismo, no solo esta de facturas sin embargo te agradezco la ayuda y por supuesto el consejo, pero resolvi mi problema y a continuación pongo la solución.

Si tengo una tabla de la siguiente manera:

Facturas:
Numero
Fecha
Subtotal
Descuento
Impuesto
GranTotal

y esta otra:

FacturasHistorico
Numero
Fecha
Subtotal
Descuento
Impuesto
GranTotal
Mes
Año

Pues doy por entendido que el mes de proceso y el año de proceso lo tengo en dos variables, asi que el query me queda algo asi:

Insert Into FacturasHistorico Select *,@mes as 'Mes',@Año as 'Año' from Facturas

Simple ¿no?

jejeje saludos y gracias de nuevo amigo...
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