2014-07-29 2 views
1

Мне нужно написать сценарий SELECT INTO T-SQL для таблицы с колонками acc_number, history_number и note.Запрос SELECT INTO

Как я облегчить добавочное значение history_number для каждой записи вставляются через SELECT INTO.

Обратите внимание, что значение для history_number отрывается как другое значение для каждого account из другой таблицы.

+1

Стол уже существует? Вы используете временную таблицу? –

+0

Таблица уже существует, я заполняю ее значениями из другой базы данных. Это не столбец идентичности. – Abhi

+0

Вам нужно увеличить на основе идентификатора, а затем перезапустить приращение для каждого нового идентификатора? Используйте 'Rank()'. Если это не описывает то, что вы пытаетесь сделать, добавьте пример ввода/вывода. –

ответ

0
SELECT history_number = IDENTITY(INT,1,1), 
    ... etc... 
INTO NewTable 
FROM ExistingTable 
WHERE ... 

Вы можете использовать ROW_NUMBER вместо идентичности, т.е. ROW_NUMBER() OVER (ORDER BY)

+0

Привет, Джейсон, это не столбец идентичности. Это целое значение, исходящее из другой таблицы, и значения, полученные для увеличения, различны для каждой учетной записи. [Есть несколько записей для каждой учетной записи, поэтому мне нужно подобрать значение history_number для учетной записи, а затем продолжать увеличивать ее для каждой записи.] – Abhi

0
SELECT acc_number 
    ,o.historynumber 
    ,note 
    ,o.historynumber+DENSE_RANK() OVER (Partition By acc_number ORDER BY Note) AS NewHistoryNumber 
                   --Or some other order by probably a timestamp... 
FROM Table t 
INNER JOIN OtherTable o 
ON .... 

Working Fiddle

даст вам инкрементируется счетчик, начиная с истории номер для каждого accnum. Я предлагаю вам использовать лучший порядок в ранге, но информации в этом вопросе недостаточно.

Ответ на этот вопрос может помочь вам, как хорошо Question

0

Пусть ваш ЗЕЬЕСТ, как это

SELECT acc_number, 
     history_number, 
     note 
FROM [Table] 

Попробуйте этот запрос, как показано ниже.

SELECT ROW_NUMBER() OVER (ORDER BY acc_number) ID, 
     acc_number, 
     history_number, 
     note  
INTO [NewTable] 
FROM [Table]