INSERT INTO Combinado ...

07/07/2004 - 19:14 por MhBeyle | Informe spam
No sé si esto es posible ...

Tengo una tabla que almacena líneas de albaranes, pedidos y facturas,
diferenciados entre sí por el valor de algunos campos.

Necesito que, al pasar una línea de pedido a albarán, se copie toda la
línea con el único cambio de los valores que diferencian cada uno de
los documentos. Es decir, si tengo un pedido con diez campos y un
valor 1, necesito copiar toda esa línea "tal cual" a otro registro,
pero con el valor 1 cambiado por, por ejemplo, un 2.

Mi intención es hacer un INSERT INTO que combine las subórdenes VALUES
y SELECT, pero no sé si esto es posible. Y no puedo copiar toda la
línea igual y luego hacer un UPDATE, ya que tendría líneas idénticas.
Tengo que hacerlo todo en un paso.

MhBeyle __

Preguntas similare

Leer las respuestas

#1 Javier Loria
07/07/2004 - 19:47 | Informe spam
Hola:
Si claro:
INSERT INTO TodosJuntos (Col1, ., ColX)
SELECT Tipo, @Valor2, ..., @Valor3
FROM (SELECT 1 AS Tipo UNION ALL
SELECT 2 UNION ALL
SELECT 3) AS Tipos
Ese diseno es valido (cuestionable pero valido) siempre y cuando las
tres entidades (albaranes, pedidos y facturas) tengan las mismas columnas.
Si no lo tienen mejor separarlo en tres tablas.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

MhBeyle escribio:
No sé si esto es posible ...

Tengo una tabla que almacena líneas de albaranes, pedidos y facturas,
diferenciados entre sí por el valor de algunos campos.

Necesito que, al pasar una línea de pedido a albarán, se copie toda la
línea con el único cambio de los valores que diferencian cada uno de
los documentos. Es decir, si tengo un pedido con diez campos y un
valor 1, necesito copiar toda esa línea "tal cual" a otro registro,
pero con el valor 1 cambiado por, por ejemplo, un 2.

Mi intención es hacer un INSERT INTO que combine las subórdenes VALUES
y SELECT, pero no sé si esto es posible. Y no puedo copiar toda la
línea igual y luego hacer un UPDATE, ya que tendría líneas idénticas.
Tengo que hacerlo todo en un paso.

MhBeyle __
Respuesta Responder a este mensaje
#2 MhBeyle
08/07/2004 - 12:40 | Informe spam
Pues no me he enterado muy bien.
A ver, si yo tengo una fila de pedido parecida a esta:

NUM ID LINEA CANT DESC
PED98001 1 10000 12 MARTILLO NUM.15

Y quiero obtener esto:

NUM ID LINEA CANT DESC
ALB78026 2 10000 12 MARTILLO NUM.15

Es decir, cambiando el número del albarán y el ID (que es el que me
indica que el documento es un albarán)...

No sé qué quieres decir con eso de TodosJuntos y lo de Tipo y las tres
SELECT ..

Gracias .

Hola:
Si claro:
INSERT INTO TodosJuntos (Col1, ., ColX)


SELECT Tipo, @Valor2, ..., @Valor3
FROM (SELECT 1 AS Tipo UNION ALL
SELECT 2 UNION ALL
SELECT 3) AS Tipos
Ese diseno es valido (cuestionable pero valido) siempre y cuando las


tres entidades (albaranes, pedidos y facturas) tengan las mismas columnas.
Si no lo tienen mejor separarlo en tres tablas.
Saludos,

Respuesta Responder a este mensaje
#3 Javier Loria
08/07/2004 - 16:36 | Informe spam
Hola:
Si es solo copia una linea con otro tipo y pedido:
==INSERT INTO NombreTabla(Num, Id, Linea, Cant, Desc)
SELECT 'ALB78026', 1, Linea, Cant, Desc
FROM NombreTabla
WHERE Num='PED98001'
== Me parece que esto es mas cercano a lo que deseas.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
MhBeyle escribio:
Pues no me he enterado muy bien.
A ver, si yo tengo una fila de pedido parecida a esta:

NUM ID LINEA CANT DESC
PED98001 1 10000 12 MARTILLO NUM.15

Y quiero obtener esto:

NUM ID LINEA CANT DESC
ALB78026 2 10000 12 MARTILLO NUM.15

Es decir, cambiando el número del albarán y el ID (que es el que me
indica que el documento es un albarán)...

No sé qué quieres decir con eso de TodosJuntos y lo de Tipo y las tres
SELECT ..

Gracias .

Hola:
Si claro:
>> INSERT INTO TodosJuntos (Col1, ., ColX)
SELECT Tipo, @Valor2, ..., @Valor3
FROM (SELECT 1 AS Tipo UNION ALL
SELECT 2 UNION ALL
SELECT 3) AS Tipos
>> Ese diseno es valido (cuestionable pero valido) siempre y cuando
las tres entidades (albaranes, pedidos y facturas) tengan las
mismas columnas. Si no lo tienen mejor separarlo en tres tablas.
Saludos,
Respuesta Responder a este mensaje
#4 MhBeyle
08/07/2004 - 18:07 | Informe spam
Así sí. Muchas gracias. El problema es que la tabla de la que te hablo
tiene unas 50 Columnas y la consulta queda un pelín larga, pero está
bien .

Un saludo,

MhBeyle __


On Thu, 8 Jul 2004 08:36:18 -0600, "Javier Loria"
wrote:

Hola:
Si es solo copia una linea con otro tipo y pedido:
==>INSERT INTO NombreTabla(Num, Id, Linea, Cant, Desc)
SELECT 'ALB78026', 1, Linea, Cant, Desc
FROM NombreTabla
WHERE Num='PED98001'
==> Me parece que esto es mas cercano a lo que deseas.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
MhBeyle escribio:
Pues no me he enterado muy bien.
A ver, si yo tengo una fila de pedido parecida a esta:

NUM ID LINEA CANT DESC
PED98001 1 10000 12 MARTILLO NUM.15

Y quiero obtener esto:

NUM ID LINEA CANT DESC
ALB78026 2 10000 12 MARTILLO NUM.15

Es decir, cambiando el número del albarán y el ID (que es el que me
indica que el documento es un albarán)...

No sé qué quieres decir con eso de TodosJuntos y lo de Tipo y las tres
SELECT ..

Gracias .

Hola:
Si claro:
>>> INSERT INTO TodosJuntos (Col1, ., ColX)
SELECT Tipo, @Valor2, ..., @Valor3
FROM (SELECT 1 AS Tipo UNION ALL
SELECT 2 UNION ALL
SELECT 3) AS Tipos
>>> Ese diseno es valido (cuestionable pero valido) siempre y cuando
las tres entidades (albaranes, pedidos y facturas) tengan las
mismas columnas. Si no lo tienen mejor separarlo en tres tablas.
Saludos,





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida