2014-01-08 3 views
0

я имею этот запрос, чтобы получить дубли в таблице, но на другую дату:магазин пересекаться результат в таблице

SELECT acf.ID , acf.ID2 , acf.CNK , acf.Omsch , acf.Groep , acf.prijs 
FROM dbo.Acf_LstPrijzen acf 
WHERE HstDate = '2013-12-01' 
INTERSECT 
SELECT acf.ID , acf.ID2 , acf.CNK , acf.Omsch , acf.Groep , acf.Prijs 
FROM dbo.Acf_LstPrijzen acf 
WHERE HstDate = (SELECT MAX(acf2.hstDate) 
         FROM dbo.Acf_LstPrijzen acf2 
         WHERE acf2.HstDate < '2013-12-01' 
         AND acf.id = acf2.id 
         GROUP BY id) 

Мой вопрос: Как я могу вставить этот результат в другой таблице? Является ли это возможным?

+0

да, это возможно. Вставить в таблицу_X (выберите .....) –

+0

Дубликат [this] (http://stackoverflow.com/questions/25969/sql-insert-into-values-select-from) и многие другие. – Zane

ответ

2

Попробуйте это ...

insert into #T 

    select * from 
    (
    SELECT acf.ID , acf.ID2 , acf.CNK , acf.Omsch , acf.Groep , acf.prijs 
    FROM dbo.Acf_LstPrijzen acf 
    WHERE HstDate = '2013-12-01' 
    INTERSECT 
    SELECT acf.ID , acf.ID2 , acf.CNK , acf.Omsch , acf.Groep , acf.Prijs 
    FROM dbo.Acf_LstPrijzen acf 
    WHERE HstDate = (SELECT MAX(acf2.hstDate) 
          FROM dbo.Acf_LstPrijzen acf2 
          WHERE acf2.HstDate < '2013-12-01' 
          AND acf.id = acf2.id 
          GROUP BY id) 
    ) 
0

Я хотел бы сделать что-то вроде этого:

INSERT INTO TableName (column1,column2,column3,column4,column5,column6) 
SELECT t.ID , t.ID2 , t.CNK , t.Omsch , t.Groep , t.prijs 
FROM(
SELECT t.ID , t.ID2 , t.CNK , t.Omsch , t.Groep , t.prijs 
FROM dbo.t_LstPrijzen t 
WHERE HstDate = '2013-12-01' 
INTERSECT 
SELECT t1.ID , t1.ID2 , t1.CNK , t1.Omsch , t1.Groep , t1.Prijs, 
FROM (SELECT ID, ID2, CNK , Omsch , Groep , Prijs, 
     ROW_NUMBER() OVER(PARTITION BY id ORDER BY HstDate DESC) AS rnk 
FROM dbo.t_LstPrijzen 
WHERE HstDate < '2013-12-01') t1 
WHERE t1.rnk = 1) t 

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

  • Нет связанных вопросов^_^