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

Откуда: Latvia
Сообщений: 206
Всем привет!
Каким образом можно соединить несколько таблиц, взяв из каждой по одному полю, а объединение провести по полю, в котором хранится дата(тип поля datetime).
В результате с 10 таблиц мне надо получить 1 запись, в которой будет по 1 параметру из каждой таблицы, которые записались под одним временем.
24 апр 03, 13:41    [183334]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
SELECT

Table1.Param,
...
Table10.Param
FROM
Table1
INNER JOIN Table2 ON
Table1.FieldWithDate = Table2.FieldWithDate
...
INNER JOIN Table10 ON
Table1.FieldWithDate = Table10.FieldWithDate
WHERE
Table1.FieldWithDate = @SomeDate


Это при условии, что записи есть во всех таблицах и единичны в пределах значения поля FieldWithDate
24 апр 03, 13:50    [183355]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
Chelyaba
Guest
Соединяй и извлекай!! :)
(подробнее опиши чего хочешь)
24 апр 03, 13:51    [183359]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
Максим
Member

Откуда: Latvia
Сообщений: 206
Постараюсь объяснить подробнее:
У меня есть 10 таблиц, в которых одинаковые поля (dtime(datetime),analog(float) и др.). Мне надо сделать отчет, форма которого будет такова - время(dtime), пар1,пар2, ... ,пар10. В этом отчете каждые 2 часа будет запись.
24 апр 03, 14:26    [183444]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
milenium
Member

Откуда: София
Сообщений: 70
А UNION или UNION ALL не помогает?
24 апр 03, 16:19    [183671]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
Максим
Member

Откуда: Latvia
Сообщений: 206
А как можно модифицырывать вариант pkarklin-а, чтобы в той ситуации, если нет данных выводилось какое-нибудь значение(наподобие как произходит в isnull()).
24 апр 03, 17:14    [183771]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
LLL
Member

Откуда: Казань
Сообщений: 59
А чем тебе isnull не подходит ?
24 апр 03, 17:16    [183776]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
Максим
Member

Откуда: Latvia
Сообщений: 206
А куда его там запихать?
24 апр 03, 17:17    [183777]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
SELECT

ISNULL(Table1.Param, 0),
...
ISNULL(Table10.Param, 0)
FROM
Table1
FULL JOIN Table2 ON
Table1.FieldWithDate = Table2.FieldWithDate
...
FULL JOIN Table10 ON
Table1.FieldWithDate = Table10.FieldWithDate
WHERE
Table1.FieldWithDate = @SomeDate
24 апр 03, 17:18    [183780]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Маленькая поправочка:

SELECT

ISNULL(Table1.Param, 0),
...
ISNULL(Table10.Param, 0)
FROM
Table1
FULL JOIN Table2 ON
Table1.FieldWithDate = Table2.FieldWithDate
...
FULL JOIN Table10 ON
Table1.FieldWithDate = Table10.FieldWithDate
WHERE
COALESCE(Table1.FieldWithDate, ..., Table10.FieldWithDate) = @SomeDate
24 апр 03, 17:22    [183790]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц  [new]
Максим
Member

Откуда: Latvia
Сообщений: 206
Спасибо за помощь!
24 апр 03, 17:42    [183818]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить