Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2015, 22:17   #1
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию Вложенный запрос вернул больше одного значения

Доброго времени суток, уважаемые программисты.
Вопрос такой...возможно ли так записать данные?
Столбец Count из Таблицы 2 переписать в Таблицу 1.
ПРОБЛЕМА в том что в Таблице 1 хранятся одинаковые строки (кроме полей ID_1, ID_2 и Count, в табл.1 есть другие поля).
В табл.2 все строки различны и есть только три поля.

Таблица 1
Код:
ID_1 ID_2 Count  ...
1  2  NULL
1  2  NULL
2  2  NULL
Таблица 2
Код:
ID_1 ID_2 Count
1  2  40
2  2  35
2  3  50
Должно получиться такое:
Код:
ID_1 ID_2 Count  ...
1  2  40
1  2  40
2  2  35
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 16.03.2015, 22:35   #2
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Код:
update Таблица 1
set
     Таблица 1.Count = Таблица 2.Count
from Таблица 1
   join Таблица 2 on  Таблица 1.ID_1 = Таблица 2.ID_1 and Таблица 1.ID_2 = Таблица 2.ID_2
lomastr_ вне форума Ответить с цитированием
Старый 16.03.2015, 22:42   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
возможно ли так записать данные?
Запрос в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2015, 22:59   #4
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Stilet, прошу прощения что не сделал этого сразу...
Я по "неопытности" своей пытаюсь обычным Select-ом
Код:
Update MyDB.dbo.Table1
Set Count = (Select Count from MyDB.dbo.Table2 
Where MyDB.dbo.Table1.ID_1=MyDB.dbo.Table2.ID_1 and 
MyDB.dbo.Table1.ID_2=MyDB.dbo.Table2.ID_2)
lomastr_, огромное спасибо, сейчас попробую прикрутить...

lomastr_, все сработало, отлично, спасибо!
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...

Последний раз редактировалось Stilet; 17.03.2015 в 07:48.
McFrey вне форума Ответить с цитированием
Старый 16.03.2015, 23:27   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
В табл.2 все строки различны и есть только три поля.
Цитата:
Вложенный запрос вернул больше одного значения
Не верю. Либо в табл.2 не все строки различны, либо не было множественного значения. Запрос в #4 корректный при условии уникальности
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.03.2015, 23:36   #6
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Аватар, поспешил, как говорится, людей насмешил, не стал искать совпадений, среди 3-х миллионов записей, пожалел время, а там 6 не уникальных....
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 17.03.2015, 00:26   #7
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
не стал искать совпадений, среди 3-х миллионов записей, пожалел время
having найдет быстро
lomastr_ вне форума Ответить с цитированием
Старый 17.03.2015, 07:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а там 6 не уникальных....
Ну тогда... Скорее облом. Можно конечно ХП написать с отсевом лишних, но лично меня смущает такая структура базы...
Можешь описать зачем понадобился такой перенос? Чует моя попса, что это совершенно ненужная затея.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2015, 08:39   #9
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Stilet, база с товарами...в таблице 1 содержатся сведения об остатках товаров на складах, эти остатки я рассчитывал вручную (за определенный период, например, с 2-1-2012 по 1-1-2015)
А в таблице 2 хранятся хранится количество остатков на определенный момент времени (например количество остатков на 1-1-2012)...
Мне нужно посчитать общее число остатков за все время...
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 17.03.2015, 08:47   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И что это такое - общее число остатков за все время? Остатки на 01-01-2015 и есть общее количество остатков от царя панька на начало года. Или там двойная бухгалтерия?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложенный запрос Firebird Dagmanor БД в Delphi 16 26.02.2014 18:14
Вложенный запрос GinIvan Помощь студентам 0 27.03.2012 13:01
Вложенный запрос Ti_pain) SQL, базы данных 2 17.12.2011 16:56
Вложенный запрос на удаление конкретной записи Droid БД в Delphi 1 03.08.2010 17:47
Firebird 2.5. Группировка и вложенный запрос. Антон Ю.Б. SQL, базы данных 8 02.07.2010 17:22