![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.09.2008
Сообщений: 7
|
![]()
Добрый день!
Вопрос такого плана: Таблица примерно следующая id |id_f |field | ... 2147 77 Иванов 2147 79 abc ... В таблице имеется по две строки с одним id. Нужно апдейтить стобец field, причем нужно в строку с id_f=79 вставить значение field строки с id_f=77, т.е. вместо 'abc' должно быть 'Иванов' для id 2147, а для других id соответственно другие значения. Набор таких пар строк может быть сколь угодно большим. Прошу помощи! |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Нескромный вопрос: А почему такое понадобилось?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
На словах - обновлять только те, у которых по две записи с одинаковым id и только последнюю из них при сортировке по возрастанию id_f значением из первой записи при той же сортировке. Реализация сильно зависит от СУБД. Если не разовая работа, то явно какие-то несуразицы с устройством базы или технологии обработки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 02.09.2008
Сообщений: 7
|
![]()
Затем что id_f это доп. свойства. И многие люди одну часть (id_f=77) заполнили, а другую (id_f=79) не заполнили. Раньше было не обязательно заполнение. Накопилось много тысяч таких вот полузаполненных доп. свойств. Ручками большой геморр это делать. СУБД MSSQL 2008R2.
Цитата:
На словах я понимаю как это сделать, а вот в запросе нет. Последний раз редактировалось Stilet; 28.08.2014 в 11:49. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Как-то в этом направлении, не отлаживал ест-но, так что 100 раз отмерь и раз отрежь
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 02.09.2008
Сообщений: 7
|
![]()
Я тоже думал о временной таблице. Есть тестовая база, на ней можно тестить. Спасибо большое.
|
![]() |
![]() |
![]() |
#7 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Временные таблицы -- зло. Раз MS SQL 2008, в нем можно использовать аналитическую функцию. Когда-то ведь нужно и новое изучать, а тут такой великолепный повод.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 02.09.2008
Сообщений: 7
|
![]() |
![]() |
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Цитата:
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
![]() |
![]() |
![]() |
#10 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Аналитические функции -- это конструкции вида:
Код:
На уровне концепций аналитическая функция -- нечто вложенного запроса group by, выполняющегося одновременно с самой выборкой и потому не создающего дополнительных накладных расходов.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление строк с одинаковыми значениями | artsanox | Microsoft Office Excel | 3 | 09.12.2013 04:45 |
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строк | abramov | Помощь студентам | 2 | 03.12.2013 10:15 |
Добавление строк с отсутсвующими значениями | zenner | Microsoft Office Excel | 7 | 27.02.2012 16:07 |
Закрашивание строк с повторяющимися значениями | SergioSolo | Microsoft Office Excel | 3 | 08.02.2011 23:07 |
Удаление строк с повторяющимися значениями | satten | Microsoft Office Excel | 11 | 01.12.2009 07:50 |