2012-03-13 3 views
1

Как сохранить результирующий набор заданного запроса в новой таблице.Табличное наложение результирующего набора

select d1.year,d1.month,d1.Circle_code,d1.Call_type_code,d1.DescId,d1.CustId, 
d1.call_logged,d2.Call_Cancel 
from dbo.Table_M_CALL_LOGGED as d1 
join dbo.Table_M_CALL_CANCEL as d2 on 

d1.year=d2.year 
and d1.month=d2.month 
and d1.Circle_Code=d2.Circle_Code 
and d1.Call_Type_Code=d2.Call_Type_Code 
and d1.DescId=d2.DescId 
and d1.CustId=d2.custID 
+0

Как вы, кажется, новичок в SQL, хорошая привычка входить - это имя ваших псевдонимов (d1, d2) с лучшим описанием, например. d1 => loggedCall, d2 => canceledCall. Поскольку вы печатаете его один раз, но читаете его несколько раз, неплохо провести немного времени, будучи многословным. Вы обнаружите, что он работает лучше в долгосрочной перспективе. –

ответ

5

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

--Creating new TempTable 
CREATE TABLE #tempTable(tempyear nvarchar(20),tempmonth nvarchar(20),Circle_code nvarchar(20),Call_type_code nvarchar(20), 
DescId nvarchar(20),CustId nvarchar(20),call_logged nvarchar(30),Call_Cancel nvarchar(20)); 

--Inserting the data into tempTable 
INSERT INTO #tempTable(tempyear,tempmonth,Circle_code,Call_type_code,DescId,CustId,call_logged,Call_Cancel) 
        select d1.year,d1.month,d1.Circle_code,d1.Call_type_code,d1.DescId,d1.CustId, 
        d1.call_logged,d2.Call_Cancel 
        from dbo.Table_M_CALL_LOGGED as d1 
        join dbo.Table_M_CALL_CANCEL as d2 on 
        d1.year=d2.year 
        and d1.month=d2.month 
        and d1.Circle_Code=d2.Circle_Code 
        and d1.Call_Type_Code=d2.Call_Type_Code 
        and d1.DescId=d2.DescId 
        and d1.CustId=d2.custID 

Ниже метод используется, когда таблица не создана ранее, и необходимо создаются, когда данные из одной таблицы должны быть вставлены во вновь созданную таблицу из другой таблицы. Новая таблица создается с теми же типами данных, что и выбранные столбцы.

    SELECT d1.year,d1.month,d1.Circle_code,d1.Call_type_code,d1.DescId,d1.CustId, 
        d1.call_logged,d2.Call_Cancel 
        INTO new_table --Here inserting into new table 
        FROM dbo.Table_M_CALL_LOGGED AS d1 
        join dbo.Table_M_CALL_CANCEL AS d2 ON 
        d1.year=d2.year 
        AND d1.month=d2.month 
        AND d1.Circle_Code=d2.Circle_Code 
        AND d1.Call_Type_Code=d2.Call_Type_Code 
        AND d1.DescId=d2.DescId 
        AND d1.CustId=d2.custID 
+0

Есть ли другой способ сделать это?? –

+0

Да, я обновлю другой метод в своем ответе .... –

+0

ya, его работа для меня ... Спасибо за это. Я смотрел это только –

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