Problema importación datos incrementales.

27/12/2006 - 12:42 por Salvador Ramos | Informe spam
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan en
blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos nuevos
en la tabla andGasoleoProfMov, pero al no tener PK la tabla de origen y
tener filas totalmente idénticas, me dan problemas todas las soluciones que
se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi ERP
de la cual sólo puedo leer datos, en ningún caso modificar su estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no he
querido complicarlo aquí, ya que puedo hacer join a ellas y obtenerlos sin
ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que pretendo
solucionar un problema importante para mi emrpresa, y además voy
contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
27/12/2006 - 14:35 | Informe spam
Pero cuál es el problema que te ocurre? No nos dices qué necesitas hacer
exactamente...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Salvador Ramos" escribió en el
mensaje news:
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan en
blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos nuevos
en la tabla andGasoleoProfMov, pero al no tener PK la tabla de origen y
tener filas totalmente idénticas, me dan problemas todas las soluciones
que se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi
ERP de la cual sólo puedo leer datos, en ningún caso modificar su
estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no he
querido complicarlo aquí, ya que puedo hacer join a ellas y obtenerlos sin
ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que pretendo
solucionar un problema importante para mi emrpresa, y además voy
contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)



Respuesta Responder a este mensaje
#2 Antonio Soto
27/12/2006 - 15:01 | Informe spam
Hola Salva,

Estás en SQL 2005? De ser así, a lo mejor podrías utilizar la función de
ranking row_number ordenando por fecha y hora

Saludos

Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference
"Salvador Ramos" wrote in message
news:
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan en
blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos nuevos
en la tabla andGasoleoProfMov, pero al no tener PK la tabla de origen y
tener filas totalmente idénticas, me dan problemas todas las soluciones
que se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi
ERP de la cual sólo puedo leer datos, en ningún caso modificar su
estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no he
querido complicarlo aquí, ya que puedo hacer join a ellas y obtenerlos sin
ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que pretendo
solucionar un problema importante para mi emrpresa, y además voy
contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)



Respuesta Responder a este mensaje
#3 Salvador Ramos
27/12/2006 - 16:35 | Informe spam
Gracias Antonio,

Tengo SQL Server 2000, estoy viendo una solución similar con Miguel Egea,
basada en crear una tabla intermedia para el proceso, donde tenga una
columna adicional con un valor calculado que sea PK, y ya desde esa importar
a mi tabla definitiva. Por ahí creo que va a salir la solución.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)


"Antonio Soto" escribió en el mensaje
news:uTtIA%
Hola Salva,

Estás en SQL 2005? De ser así, a lo mejor podrías utilizar la función de
ranking row_number ordenando por fecha y hora

Saludos

Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference
"Salvador Ramos" wrote in message
news:
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan en
blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos
nuevos en la tabla andGasoleoProfMov, pero al no tener PK la tabla de
origen y tener filas totalmente idénticas, me dan problemas todas las
soluciones que se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi
ERP de la cual sólo puedo leer datos, en ningún caso modificar su
estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no
he querido complicarlo aquí, ya que puedo hacer join a ellas y obtenerlos
sin ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que
pretendo solucionar un problema importante para mi emrpresa, y además voy
contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)






Respuesta Responder a este mensaje
#4 Salvador Ramos
27/12/2006 - 16:41 | Informe spam
Hola Carlos,

Perdona si no me he explicado bien, es que he intentado resumir un poco el
problema para solucionar su núcleo y que me podáis entender, pero creo que
no lo he conseguido.

Tengo una tabla Origen (la del primer script) y necesito ir pasando datos
procedentes de ella a una tabla destino (la del segundo script). Mi idea es
pasar los movimientos que no estén en la tabla Destino y si en la taba
Origen. El problema es que la tabla origen no tiene PK y si que tiene filas
que son idénticas (tienen los mismos valores en todas sus columnas).

Por ejemplo (con campos inventados) en tabla Origen:
C1 C2 C3
1 1 2
1 1 3
1 1 4
1 1 4
1 1 5

Y tabla destino (suponiendo que tenga los mismos campos):
C1 C2 C3
1 1 2
1 1 3

Y ahora quiero importar las filas que me faltan en la tabla Destino.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Pero cuál es el problema que te ocurre? No nos dices qué necesitas
hacer exactamente...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Salvador Ramos" escribió en el
mensaje news:
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan en
blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos
nuevos en la tabla andGasoleoProfMov, pero al no tener PK la tabla de
origen y tener filas totalmente idénticas, me dan problemas todas las
soluciones que se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi
ERP de la cual sólo puedo leer datos, en ningún caso modificar su
estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no
he querido complicarlo aquí, ya que puedo hacer join a ellas y obtenerlos
sin ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que
pretendo solucionar un problema importante para mi emrpresa, y además voy
contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)







Respuesta Responder a este mensaje
#5 Antonio Soto
27/12/2006 - 17:03 | Informe spam
Estás en buenas manos :-)


Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference
"Salvador Ramos" wrote in message
news:%
Gracias Antonio,

Tengo SQL Server 2000, estoy viendo una solución similar con Miguel Egea,
basada en crear una tabla intermedia para el proceso, donde tenga una
columna adicional con un valor calculado que sea PK, y ya desde esa
importar a mi tabla definitiva. Por ahí creo que va a salir la solución.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)


"Antonio Soto" escribió en el mensaje
news:uTtIA%
Hola Salva,

Estás en SQL 2005? De ser así, a lo mejor podrías utilizar la función de
ranking row_number ordenando por fecha y hora

Saludos

Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other
person
or entity either by inference or direct reference
"Salvador Ramos" wrote in message
news:
Hola a todos,

Tengo una tabla origen en la cual no tengo PK, y cuento con algunas
repetidas (filas totalmente iguales, con el mismo valor en todas sus
columnas:

CREATE TABLE [dbo].[avlValec](
[Empresa] [int] NULL,
[cliente] [int] NULL,
[tipo_fact] [char](2) COLLATE Modern_Spanish_CI_AS NULL,
[num_tarjeta] [char](19) COLLATE Modern_Spanish_CI_AS NULL,
[fecha] [smalldatetime] NULL,
[num_mvto] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[cod_articulo] [varchar](8) COLLATE Modern_Spanish_CI_AS NULL,
[denominacion] [varchar](40) COLLATE Modern_Spanish_CI_AS NULL,
[pvp_iva] [decimal](8, 3) NULL,
[tipo_dto] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[canti] [decimal](8, 2) NULL,
[importe_vale] [decimal](8, 2) NULL,
[impor_dto] [decimal](7, 2) NULL,
[dto] [decimal](6, 3) NULL,
[iva] [decimal](3, 1) NULL,
[codigo_esta] [int] NULL,
[hora] [varchar](4) COLLATE Modern_Spanish_CI_AS NULL,
[matricula] [char](10) COLLATE Modern_Spanish_CI_AS NULL,
[fecha_factu] [smalldatetime] NULL,
[num_factu] [varchar](10) COLLATE Modern_Spanish_CI_AS NULL,
[facturado] [char](1) COLLATE Modern_Spanish_CI_AS NULL,
[contab] [char](1) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

Y otra tabla destino en la que tengo que insertar filas desde la tabla
origen anterior. Esta tabla contiene algunas columnas procedentes de la
tabla anterior (no todas).

CREATE TABLE [dbo].[andGasoleoProfMov](
[IdMovCont] [char](21) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CIM] [char](8) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fecha] [datetime] NOT NULL,
[Hora] [char](4) COLLATE Modern_Spanish_CI_AS NOT NULL,
[CodPro] [char](3) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Lit] [decimal](7, 2) NOT NULL,
[NIF] [char](9) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Matricula] [varchar](12) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Estado] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[Fichero] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL,
[FechaAudit] [datetime] NOT NULL,
[Empresa] [int] NOT NULL,
CONSTRAINT [PK_andGasoleoProfMov] PRIMARY KEY CLUSTERED
(
[IdMovCont] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Las columnas Estado, Fichero y FechaAudit al importar los datos quedan
en blanco y posteriormente las actualizan otros procesos.

Necesito realizar un proceso periódico para la importación de datos
nuevos en la tabla andGasoleoProfMov, pero al no tener PK la tabla de
origen y tener filas totalmente idénticas, me dan problemas todas las
soluciones que se me han ocurrido, y no consigo hacerlo.
No es posible poner una PK a la tabla origen, ya que es una tabla de mi
ERP de la cual sólo puedo leer datos, en ningún caso modificar su
estructura.
Algunos de los datos de la tabla destino salen de otras tablas, pero no
he querido complicarlo aquí, ya que puedo hacer join a ellas y
obtenerlos sin ningún problema.

Si se os ocurre alguna solución, os estaré muy agradecido, ya que
pretendo solucionar un problema importante para mi emrpresa, y además
voy contrareloj, tenía que estar hecho para ayer :-(

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server / MCTS: SQL Server 2005]
www.helpdna.net (información sobre SQL Server y .NET)










Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida