Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
есть 2 таблицы
1я со столбцами ID и name
2я со столбцами ID и name
необходимо скопировать данные из 2й в конец первой, тоесть если последний ID в первой был 64, то начинать с 65 и далее по порядку.
ID второй таблицы могут иметь пропуски например 1, 3, 4, 5, 8, 11. их при копировании желательно игнорировать
26 окт 11, 10:31    [11500358]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
А у первой таблицы на ID стоит автоинкеминент?
26 окт 11, 10:39    [11500427]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
aleks2
Guest
Вы испытываете трудности с применением ROW_NUMBER()?
26 окт 11, 10:40    [11500429]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
автоинкремент выключен, включать нельзя
как применить ROW_NUMBER я не могу разобраться
26 окт 11, 11:14    [11500767]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
lamyk
автоинкремент выключен, включать нельзя...
Почему? Не интересовался?
26 окт 11, 11:16    [11500783]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
ПО для внесения данных в базу перестает работать если включить автоинкремент
26 окт 11, 11:18    [11500801]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Sekoka
Member

Откуда:
Сообщений: 73
lamyk,

тоесть надо дополнить первую таблицу начиная с последнего идентификатора?

тогда вот так попробуй

INSERT INTO T1(ID, NAME)
SELECT ID, NAME
FROM T2
WHERE ID>(SELECT MAX(ID)
          FROM T1)
26 окт 11, 11:36    [11500962]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
Sekoka
lamyk,

тоесть надо дополнить первую таблицу начиная с последнего идентификатора?

тогда вот так попробуй

INSERT INTO T1(ID, NAME)
SELECT ID, NAME
FROM T2
WHERE ID>(SELECT MAX(ID)
          FROM T1)


я так понимаю что запрос добавит только те ID из второй таблицы, которые больше макс. значения ID первой.
мне же необходимо вставить все строки из 2 таблицы
26 окт 11, 11:49    [11501070]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
tt1
Guest
insert into #t1 (id,name)
select row_number() over(order by a.name) + (select max(id) from #t1)
,a.name
from #t2 a
left join #t1 b
on a.name = b.name
where b.id is null
group by a.name
26 окт 11, 12:08    [11501300]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
DECLARE @t1 table (id int,name varchar(250));
INSERT INTO @t1 (id, name) VALUES 
(1,'Наименование 1'),
(24,'Наименование 3'),
(25,'Наименование 2')


SELECT * FROM @t1

DECLARE @t2 table (id int,name varchar(250));
INSERT INTO @t2 (id, name) VALUES 
(30,'Наименование 7'),
(31,'Наименование 6')

SELECT * FROM @t2

insert into @t1 (id,name)
select row_number() over(order by name) + (select max(id) from @t1) as id
 ,name
from @t2

SELECT * FROM @t1
26 окт 11, 12:33    [11501679]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
lamyk
ПО для внесения данных в базу перестает работать если включить автоинкремент

то есть, это ПО будет работать одновременно с вашим скриптом копирования, верно? а каким образом в этом ПО определяется вставляемый ID и в какой момент это происходит?
26 окт 11, 12:36    [11501732]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Users
Member

Откуда:
Сообщений: 341
lamyk
ПО для внесения данных в базу перестает работать если включить автоинкремент


Из чего можно сделать вывод, что данное ПО само заносит данные в этот конкретно столбец.
Но ничто, по идее, не запретит создать еще одно поле с именем, скажем, MyId и сделать его автоинкрементным?
26 окт 11, 12:46    [11501886]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
ПО параллельно с запросом работать не будет. данные через ПО не заносятся пока не нажать в ПО кнопки править/сохранить
сейчас пытался добавить столбец с автоинкрементом, но не получается
ALTER TABLE groups ADD myID INT UNSIGNED NOT NULL AUTO_INCREMENT

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'UNSIGNED'.
26 окт 11, 13:07    [11502134]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
lamyk
ПО параллельно с запросом работать не будет. данные через ПО не заносятся пока не нажать в ПО кнопки править/сохранить
сейчас пытался добавить столбец с автоинкрементом, но не получается
ALTER TABLE groups ADD myID INT UNSIGNED NOT NULL AUTO_INCREMENT

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'UNSIGNED'.
А вы где нашли этот синтаксис, простите?
26 окт 11, 13:08    [11502153]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
lamyk
Ты коды пробуешь запускать или тут тебе просто так пишут? 11501679
26 окт 11, 13:10    [11502181]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
Гавриленко Сергей Алексеевич
А вы где нашли этот синтаксис, простите?

в гугле)

Владимир СА
lamyk
Ты коды пробуешь запускать или тут тебе просто так пишут? 11501679


я немного не понял что значат
(1,'Наименование 1'),
(24,'Наименование 3'),
(25,'Наименование 2')
26 окт 11, 13:18    [11502278]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
lamyk
Гавриленко Сергей Алексеевич
А вы где нашли этот синтаксис, простите?

в гугле)
Я рад за вас. В следующий раз читайте, к какому продукту этот синтаксис относится, чтобы не обсуждать весь гугл на форуме.
26 окт 11, 13:20    [11502300]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
lamyk
я немного не понял что значат
(1,'Наименование 1'),
(24,'Наименование 3'),
(25,'Наименование 2')
Да-с.... запусти скрипт, увидишь...

К сообщению приложен файл. Размер - 9Kb
26 окт 11, 13:22    [11502321]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
lamyk
я немного не понял что значат
(1,'Наименование 1'),
(24,'Наименование 3'),
(25,'Наименование 2')
Ты же не выложил примеры своих таблиц. Приходится за тебя все делать... И примеры таблиц, и запрос, который тебе вроде нужен, и результат...
26 окт 11, 13:26    [11502367]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
tt1
insert into #t1 (id,name)
select row_number() over(order by a.name) + (select max(id) from #t1)
,a.name
from #t2 a
left join #t1 b
on a.name = b.name
where b.id is null
group by a.name


извиняюсь за кипиш который поднял тут
этот запрос работает как мне нужно
26 окт 11, 13:26    [11502369]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
lamyk
tt1
insert into #t1 (id,name)
select row_number() over(order by a.name) + (select max(id) from #t1)
,a.name
from #t2 a
left join #t1 b
on a.name = b.name
where b.id is null
group by a.name


извиняюсь за кипиш который поднял тут
этот запрос работает как мне нужно
Почему тогда тему не закрываешь... Типа все ОК.
26 окт 11, 13:27    [11502383]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
спасибо всем
26 окт 11, 13:27    [11502384]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
возникла еще одна задача
есть 2 таблицы groups и graccess
из groups нужно взять все ID не упомянутые в столбце groupID таблицы graccess и сделать для них записи аналогичные заданному вручную groupID таблицы graccess
например: для groupID = 3 таблицы graccess есть 4 строки. нужно сделать аналогичные записи для каждого ID из таблицы groups неупомянутого в groupID таблицы graccess

К сообщению приложен файл. Размер - 63Kb
27 окт 11, 14:22    [11509182]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
lamyk
Member

Откуда:
Сообщений: 14
ап, кину 100руб на телефон тому кто поможет с предыдущим постом
8 ноя 11, 14:30    [11563823]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
lamyk
ап, кину 100руб на телефон тому кто поможет с предыдущим постом
С такими предложениями - в форум "Работа".
8 ноя 11, 14:30    [11563829]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить