![]() |
|
Модераторы: skyboy |
![]()
|
|
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Есть таблица tab1 и tab2
первая с полями id count datetime вторая с аналогичными ... они не связаны между собой. Нужно сформировать выборку из этих двух таблиц следующим образом : все записи из первой таблицы за сегодняшний день и все записи из второй таблицы за сегодняшний день Дата tab1.count tab2.count |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Это невозможно - нет критерия. по которому в одной записи выходного набора будут объединены конкретные записи исходных наборов.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
странно ... мне на первый взгляд казалось что это возможно ....
просто если в первой таблице есть записи (пусть дата в формате год месяц день ) 1 100 2012-10-10 14:45 2 210 2012-10-10 15:40 3 400 2012-11-10 12:45 4 300 2012-12-10 14:45 а во второй 1 330 2012-10-10 11:15 2 110 2012-11-10 11:40 3 420 2012-11-10 10:42 то за 2012-10-10 мы получим такую выборку : 1 330 2012-10-10 11:15 2 100 2012-10-10 14:45 3 210 2012-10-10 15:40 т.е по дате Это сообщение отредактировал(а) Atum - 17.10.2012, 21:57 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
А теперь посмотрите на первый и на второй посты. Две совершенно разные задачи!
Вторая решается запросто:
Как правильно выполнить квотирование кривых имён полей, функции выделения даты из датетайм и правильное задание сортировки выходного набора - это уже зависит от СУБД. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
А можно попробовать получить такой вид
три колонки Дата |Значение count из первой таблицы | Значение count из второй таблицы 2012-10-10 11:15 | null | 330 2012-10-10 14:45 |100 | null 2012-10-10 15:40 |200 | null |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Можно. Тоже совершенно тривиальная задача.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Вопрос как ? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Подзапросом собрать все даты с обеих таблиц. К нему привязать справа обе таблицы. Даты брать из подзапроса, значения из таблиц.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
зачем? Union all и баста. Возможно сверху группировочку, если надо
В верхнем запросе, возможно, придется привести null к типу данных val второго запроса - cast(null as integer), если val2 имеет тип integer Это сообщение отредактировал(а) Zloxa - 22.10.2012, 08:52 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Я предположил, что в двух таблицах может встретиться одинаковое время. и в этом случае оба поля должны быть не-null. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
группировка сверху. Это будет производительней чем фуллаутер или же его альтернативные написания. К тому же с фуллаутером, если дата в исходных наборах не уникальна, будем иметь кроссджойн подтягиваемых значений по датам, заманаемся аггрегировать, чтоб не исказиться. Добавлено через 3 минуты и 50 секунд я так понимаю что подтягиваемое значение у нас - количество, потому применяю аггреат - сумму
Это сообщение отредактировал(а) Zloxa - 22.10.2012, 11:06 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
огромное спасибо - скорее первый вариант - т.к это некая модель кошелька ... две таблицы - в одной деньги пришли в другой ушли ...
нужно формировать вывод приход - расход по дням. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
а почему две, а не одна? сущность-то одна - операция с деньгами... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
чтобы можно было независимо - в одну добавили в другую добавили - нет конфликтов - никто ничего не ждет ... в банках так делают наверное а вот отчет формировать - это операция не высокого приоритета - можно и объединить . |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Мне это кажется неубедительным. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |