SQL - problema INSERT INTO con SELECT

   
Vista:

problema INSERT INTO con SELECT

Publicado por kanika (17 intervenciones) el 20/02/2013 16:14:38
Hola a todos, y gracias por anticipado

quiero hacer una inserción de unas líneas en una tabla, las líneas que quiero insertar están en otra tabla pero no quiero insertarlas todas solo aquellas que están dentro del filtro.

este es el código que he escrito:

INSERT INTO [tabla1] ([Table Name],[No_],[Language Code],[Text No_],[Line No_],[Text])
SELECT [tabla2].[Table Name], [tabla2].No_, [tabla2].[Language Code], [tabla2].[Text No_], [tabla2].[Line No_], [tabla2].[Text]
FROM [tabla2]
INNER JOIN [tabla3] ON [tabla2].No_ = [tabla3].No_
WHERE ([tabla2].No_ = '3')

hasta aquí bien solo que quiero que me inserte los datos para unos registros determinados no para todos quedando así

INSERT INTO [tabla1] ([Table Name],[No_],[Language Code],[Text No_],[Line No_],[Text])
values (SELECT [tabla2].[Table Name], [tabla2].No_, [tabla2].[Language Code], [tabla2].[Text No_], [tabla2].[Line No_], [tabla2].[Text]
FROM [tabla2]
INNER JOIN [tabla3] ON [tabla2].No_ = [tabla3].No_
WHERE ([tabla2].No_ = '3'))
where ([tabla1].No_ <> '3')

y aquí es donde da error, no me reconoce el select.

Alguna idea? 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 Isaias

problema INSERT INTO con SELECT

Publicado por Isaias (690 intervenciones) el 20/02/2013 17:53:29
¿Que motor de base de datos manejas?

Tu no puedes poner un WHERE en un insert y si vas a insertar de un select, debe ser como la primera opcion que pusiste
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

problema INSERT INTO con SELECT

Publicado por kanika (17 intervenciones) el 21/02/2013 16:08:36
Lo he cambiado por este otro código

INSERT INTO [Tabla1] ([No_],[Table Name],[Language Code],[Text No_],[Line No_], [Text])
VALUES ((SELECT [Tabla2].[No_] FROM [Tabla1] RIGHT OUTER JOIN [Tabla2]
ON [Tabla1].No_ = [Tabla2].No_ WHERE ([Tabla2].[Starting Date] = CONVERT(DATETIME, '2013-01-01 00:00:00', 102)))
, 2,'',1,
(SELECT [Tabla1].[Line No_], [Tabla1].[Text] FROM [Tabla1] WHERE (No_ = '3C230005025AMON')));

pero me da este error en la ultima línea:
Sólo se puede especificar una expresión en la lista de selección cuando la subconsulta no se especifica con EXISTS.
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
Imágen de perfil de Isaias

problema INSERT INTO con SELECT

Publicado por Isaias (690 intervenciones) el 21/02/2013 21:02:09
¿Que motor ocupas?

Deberia ser algo como


INSERT INTO <tutabla> (col1, col2, col3, col20)
SELECT campo1, campo2, campo3, campo4 FROM <TUTABLA> WHERE <tufiltro>
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

problema INSERT INTO con SELECT

Publicado por Luis Miguel Flores Chavez (1 intervención) el 21/02/2013 21:15:22
Puedes armar el query concatenando luego lo pasar al ejecutador de query de tu motor de base de datos:


select 'insert into tabla_destino (columna_1.columna_2) values (' valor1, valor2 ')' from producto where precio > 100

Espero que te ayude...
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