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

Откуда: Российская Федерация
Сообщений: 105
имеется 3 таблицы в ms sql

Table1
ID
lastname
firstname
inv_number

Table2
ID
WID

Table3
WID
Inv

Имеется запрос с выводом данных из этих таблиц
SELECT table1.id, table2.id AS Expr1, table2.wid, table3.wid AS Expr2, table1.inv_number, table3.inv
FROM table1 FULL OUTER JOIN
table2 ON table1.id = table2.id FULL OUTER JOIN
table3 ON table2.wid = table3.wid AND table1.inv_number = table3.inv

Как скопировать данные из столбца inv_number table1 в inv table3 по равенствам tabble2?
19 ноя 14, 17:59    [16873732]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
_djХомяГ
Guest
1 Скопировать - это проапдейтить?
2 Ваш запрос возвращяет правильные данные?

Если ответы положительные то на основе select'a предоставленного в топике напишите update
Но лучше update запускать в транзакции begin tran rollback tran и првоерять select'ом правильно ли проапдейтилось
19 ноя 14, 18:20    [16873825]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
вывод работает, обновление записей нет
19 ноя 14, 19:51    [16874238]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Vladsn07
вывод работает, обновление записей нет
SELECT не обновляет данные.
20 ноя 14, 04:05    [16875766]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Разобрался с запросом

UPDATE table3 as a SET  inv =
(select  inv_number  from table1 as b left outer join Table2 as c on b.ID=c.ID  where c.ID =a.ID)


Хочу развить его дальше.

Что если есть еще 1 таблица

table4
inv
inv1

Как записать inv_number в inv1?
20 ноя 14, 21:42    [16881912]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8488
Vladsn07, Вы бы лучше не занимались изобретательством, а потратили бы время на какой-нибудь учебник и чтение документации.
20 ноя 14, 21:56    [16881952]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Если бы было время на чтение литературы и изучение всего, что можно - я бы так и сделал, но так как я ограничен во времени обращаюсь именно к вам, к специалистам
21 ноя 14, 22:33    [16888161]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vladsn07
Если бы было время на чтение литературы и изучение всего, что можно - я бы так и сделал, но так как я ограничен во времени обращаюсь именно к вам, к специалистам

Ага, третьи сутки работаете так, что нет времени прочитать пару страниц хелпа
http://msdn.microsoft.com/en-us/library/ms177523.aspx
21 ноя 14, 22:40    [16888190]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Создал вроде бы запрос
UPDATE table4 SET inv1 = 
(select  inv_number  from table1
        left outer join table2 on table2.id=table1.id
        left outer join table3 on table2.wid = table3.wid
        where table3.inv=table4.inv)


Но система выводит ошибку:
Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует после =, !=, <, <=, >, >= или используется в качестве выражения.
21 ноя 14, 22:53    [16888236]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vladsn07
Вложенный запрос вернул больше одного значения.

Это сообщение непонятно или двусмысленно для вас ?
21 ноя 14, 22:56    [16888246]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
нет, не понятно, может что-то не так в моем запросе?
21 ноя 14, 23:06    [16888280]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vladsn07
нет, не понятно, может что-то не так в моем запросе?

Разумеется
Вложенный запрос вернул больше одного значения.
Вы понимаете, что такое "больше одного" ?
Это 2,3,4 и тд значений
21 ноя 14, 23:17    [16888315]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Проблема с данными в самой базе или запрос не правильно составлен?
21 ноя 14, 23:23    [16888328]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Vladsn07,

update неправильно
сначала напишите запрос правильно связывающий все таблицы
и возвращающий ID таблицы которую надо update
и поля которые надо update и то значение которое должно быть
21 ноя 14, 23:34    [16888363]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
вот я и пишу, чтобы узнать как правильно
21 ноя 14, 23:43    [16888397]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Vladsn07,

вот ваш запрос в самом первом посте
он содержит ту таблицу поле в которой надо апдейтить?
21 ноя 14, 23:46    [16888408]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
нет, поле inv1 в table4
22 ноя 14, 00:06    [16888490]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
leov
Vladsn07,

update неправильно
сначала напишите запрос правильно связывающий все таблицы
и возвращающий ID таблицы которую надо update
и поля которые надо update и то значение которое должно быть
дак сделай таки вот это
собери единый select соединяющий все таблицы вместе
следующим шагом из него легко пишется update
22 ноя 14, 00:11    [16888505]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
все понятно с вами
22 ноя 14, 00:15    [16888521]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Vladsn07,

дак тут сразу со всеми в общем понятно
никто не хочет делать работу за халявщика
которому лень прочитать страничку хелпа
22 ноя 14, 00:24    [16888546]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
leov
Vladsn07,

дак тут сразу со всеми в общем понятно
никто не хочет делать работу за халявщика
которому лень прочитать страничку хелпа


Что за манера общения у вас такая на этом форуме?

Я же не просил вас программу за меня написать, банально попросил правильный запрос, сидят профессоры и посылают всех на лево и направо. Любите поучить, так идите в школу или в другое образовательное учреждение. Форум - это не учебное заведение. Я спрашиваю, как будет правильно. Не хотите помогать - так и пишите и все, не надо даже впрягаться.
22 ноя 14, 00:40    [16888604]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Vladsn07,

вот ленивый попался
вот подобная тема
вы ведете себя как школьник который приперся в универ на кафедру математики
ногой открыл дверь и говорит - А-ну яйцеголовые, решите-ка мне домашку!
select *
from  table4 
join (
  select  inv_number,  table3.inv
  from table1
  left outer join table2 on table2.id=table1.id
  left outer join table3 on table2.wid = table3.wid
)q on q.inv=table4.inv
вот такой селект правильные данные вернет?
22 ноя 14, 01:15    [16888689]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
Обнулил все в table4
22 ноя 14, 01:22    [16888700]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
Vladsn07
Member

Откуда: Российская Федерация
Сообщений: 105
что такое q?
22 ноя 14, 01:24    [16888705]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос помогите  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Vladsn07,

это alias - псевдоним который присваивается чтобы обращаться к подселекту или можно присвоить любой таблице чтобы короче писать
22 ноя 14, 01:27    [16888710]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить