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

Откуда:
Сообщений: 7
Всем здравствуйте! Копался по форуму в поисках ответа на свой вопрос, но ничего не нашел, потому что наверное даже не знаю толком что искать :( c SQL столкнулся совсем недавно. Вопрос такой:
есть две выборки по показаниям приборов c полями (timestamp, vals) из одной и той-же таблицы.
Вот как они выглядят:
dataset1 по прибору №1
----------------------------------------
timestamp           |       vals      |
----------------------------------------
2014-09-10 10:00:00 |        56       |
2014-09-10 10:01:00 |        55       |
2014-09-10 10:02:00 |        34       |
2014-09-10 10:09:00 |        40       |
2014-09-10 10:11:00 |        45       |
2014-09-10 10:15:00 |        51       |
....

dataset2 по прибору №2
----------------------------------------
timestamp           |       vals       |
----------------------------------------
2014-09-10 10:01:00 |        4,7       |
2014-09-10 10:02:00 |        5,0       |
2014-09-10 10:03:00 |        5,2       |
2014-09-10 10:04:00 |        5,1       |
2014-09-10 10:07:00 |        4,9       |
2014-09-10 10:08:00 |        5,2       |
2014-09-10 10:14:00 |        5,0       |
2014-09-10 10:15:00 |        5,3       |
....

Из этих двух сетов мне нужно получить такой:
--------------------------------------------------------
timestamp           |       vals_p1   |      vals_p2  |
--------------------------------------------------------
2014-09-10 10:00:00 |        56       |      null     |
2014-09-10 10:01:00 |        55       |      4,7      |      
2014-09-10 10:02:00 |        34       |      5,0      |
2014-09-10 10:03:00 |        null     |      5,2      |
2014-09-10 10:04:00 |        null     |      5,1      |
2014-09-10 10:07:00 |        null     |      4,9      |
2014-09-10 10:08:00 |        null     |      5,2      |
2014-09-10 10:09:00 |        40       |      null     |
2014-09-10 10:11:00 |        45       |      null     |
2014-09-10 10:14:00 |        null     |      5,0      |
2014-09-10 10:15:00 |        51       |      5,3      |

Т.е. данные выбираются за один и тот-же период, но внутри периода они размазаны и четкой дискретности нет. Очень прошу помощи в составлении такого запроса. Заранее спасибо!
18 сен 14, 09:55    [16588766]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Glory
Member

Откуда:
Сообщений: 104751
FULL OUTER JOIN
18 сен 14, 09:59    [16588780]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
_djХомяГ
Guest
FULL JOIN
18 сен 14, 10:00    [16588783]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
Вот так скорость ответа! Glory, спасибо! А как быть с полем "timestamp"?
18 сен 14, 10:03    [16588802]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Novice99
А как быть с полем "timestamp"?

Как хотите, так и будьте
18 сен 14, 10:06    [16588818]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
)) но при full outer joint получится:

--------------------------------------------------------
timestamp1           |       vals_p1   |timestamp2           |      vals_p2  |
--------------------------------------------------------
2014-09-10 10:00:00 |        56       |null                |      null     |
2014-09-10 10:01:00 |        55       |2014-09-10 10:01:00 |      4,7      |      
2014-09-10 10:02:00 |        34       |2014-09-10 10:02:00 |      5,0      |
null                |        null     |2014-09-10 10:03:00 |      5,2      |
null                |        null     |2014-09-10 10:04:00 |      5,1      |
null                |        null     |2014-09-10 10:07:00 |      4,9      |
null                |        null     |2014-09-10 10:08:00 |      5,2      |
2014-09-10 10:09:00 |        40       |null                |      null     |
2014-09-10 10:11:00 |        45       |null                |      null     |
null                |        null     |2014-09-10 10:14:00 |      5,0      |
2014-09-10 10:15:00 |        51       |2014-09-10 10:15:00 |      5,3      |
18 сен 14, 10:13    [16588853]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
_djХомяГ
Guest
а isnull(timesramp1,timestamp2) или не понятен вопрос
18 сен 14, 10:15    [16588861]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
у меня должно получиться одно поле timestamp в котором присутствуют записи и из первой выборки и из второй.
18 сен 14, 10:20    [16588883]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
Да, и в поле timestamp значения повторяться не должны. ((
18 сен 14, 10:22    [16588893]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Novice99
у меня должно получиться одно поле timestamp в котором присутствуют записи и из первой выборки и из второй.

а с какого набора ето поле должно быть с первогог или второго ? БО чет нниче не понятно
18 сен 14, 10:23    [16588899]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Novice99
Да, и в поле timestamp значения повторяться не должны. ((

Хомяг вам все уже подсказал
18 сен 14, 10:24    [16588901]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Novice99
Да, и в поле timestamp значения повторяться не должны

Ну так сделайте так, чтобы они не повторялись в ваших таблицах
18 сен 14, 10:24    [16588902]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
Как раз читал справку по isnull. Да Хомяк это. то что нужно, спасибо! А второе поле (timestamp) я просто не включаю в выборку и все получается.
18 сен 14, 10:34    [16588948]     Ответить | Цитировать Сообщить модератору
 Re: опять слияние двух датасетов  [new]
Novice99
Member

Откуда:
Сообщений: 7
Maxx, оно должно быть собрано из двух выборок
18 сен 14, 10:36    [16588958]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить