2016-10-12 2 views
0

Я написал запрос для извлечения данных.Скопируйте выбранные данные из одной таблицы в другую в SQL Server

select Terr, Product 
from sdata, md 
where sdata.PSetID = md.PsetID; 

Я хочу скопировать полученные данные в новую таблицу.

Я попробовал следующий запрос, но он не работает:

select * 
into ttl 
from 
    (select Terr, Product 
    from sdata, md 
    where sdata.PSetID = md.PsetID); 

Что я делаю неправильно?

+0

[Плохие привычки пнуть: использование старого стиля JOIN и] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits -to-kick-use-old-style-joins.aspx) - этот стиль таблиц * в стиле старого стиля * с заменой запятой был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** более 20 лет ** назад), и его использование не рекомендуется –

+0

@marc_s Я буду иметь в виду. В следующий раз я буду использовать синтаксис JOIN. Благодарю. – Japs

ответ

3

Вам нужно добавить alias имя в sub-select

SELECT * 
INTO ttl 
FROM (SELECT Terr, 
       Product 
     FROM sdata 
       INNER JOIN md 
         ON sdata.PSetID = md.PsetID) A; --Here 

Или просто

SELECT Terr, 
     Product 
INTO ttl 
FROM sdata 
     INNER JOIN md 
       ON sdata.PSetID = md.PsetID 
+0

Спасибо за помощь. Оно работает. – Japs

0

Другой вариант со следующим синтаксисом:

ВЫБРАТЬ column_name (s) INTO Новая_таблица FROM table1;

В вашем случае:

select Terr, Product 
into ttl 
from sdata s 
join md m on s.PSetID = m.PsetID 
+0

Ничего плохого в синтаксисе OP не хватало, чтобы добавить псевдоним –

+0

Right .... получил –

+0

@Prdp Спасибо. – Japs

Смежные вопросы