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

Откуда:
Сообщений: 12
Здравствуйте,
Как выполнить объединение двух таблиц с замещением, т.е. что бы после объединения было не несколько записей с одним id, а одна запись с одним id с перетертыми данными из другой таблицы

SELECT    TOP 100   Comment.CommentId, Comment.OperatorName
FROM         Comment
UNION
SELECT    TOP 100   Comment.CommentId, Alarm.OperatorName
FROM         Comment LEFT OUTER JOIN
                      Alarm ON Alarm.ReturnTime = Comment.CommentTime
Order by CommentId desc


сейчас запрос работает не так как мне нужно.
2 окт 12, 07:22    [13253389]     Ответить | Цитировать Сообщить модератору
 Re: Объединение двух таблиц с замещением  [new]
sameness
Member

Откуда:
Сообщений: 12
т.е. по сути наложить данные одной выборки на данные другой
2 окт 12, 07:24    [13253392]     Ответить | Цитировать Сообщить модератору
 Re: Объединение двух таблиц с замещением  [new]
serpentariy
Member

Откуда:
Сообщений: 266
При условии, что не надо обновлять данные, если для строки из Comment нет соответствующей строки в Alarm
UPDATE c SET    OperatorName=a.OperatorName
FROM  Comment c JOIN Alarm a ON a.ReturnTime = c.CommentTime AND c.CommentId=a.CommentId

SELECT * FROM Comment
2 окт 12, 07:50    [13253419]     Ответить | Цитировать Сообщить модератору
 Re: Объединение двух таблиц с замещением  [new]
sameness
Member

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

в этом запросе на сколько я понимаю происходит обновление данных в таблице Comment?
мне нужно без изменения таблиц. просто слить несколько запросов в результирующий набор данных не добавляя новых строк, а перетирая имеющиеся
2 окт 12, 08:12    [13253449]     Ответить | Цитировать Сообщить модератору
 Re: Объединение двух таблиц с замещением  [new]
aleks2
Guest
SELECT    TOP 100   Comment.CommentId, ISNULL(Alarm.OperatorName, Comment.OperatorName) as OperatorName
FROM    Comment LEFT OUTER JOIN   Alarm ON Alarm.ReturnTime = Comment.CommentTime
Order by CommentId desc
2 окт 12, 08:37    [13253521]     Ответить | Цитировать Сообщить модератору
 Re: Объединение двух таблиц с замещением  [new]
serpentariy
Member

Откуда:
Сообщений: 266
SELECT c.CommentId, ISNULL(a.OperatorName,c.OperatorName) AS OperatorName
FROM Comment c LEFT OUTER JOIN Alarm a ON A.ReturnTime = c.CommentTime AND c.CommentId=a.CommentId
2 окт 12, 08:56    [13253573]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить