|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.08.2015, 01:01 | #1 |
Форумчанин
Регистрация: 18.02.2008
Сообщений: 198
|
SQL Хитрое совмещение выборки из двух таблиц
Привет всем.
Есть две таблицы платежи Код:
Код:
t2.t1id может принимать NULL в t1 платежи которые нужно заплатить в t2 приходы, и расходы по платежам что в t1 Если в t2 попадает РАСХОД, то поле t2.t1id обязательно имеет id платежа из t1 Если в t2 попадает ПРИХОД, то поле t2.t1id равно NULL Делаю запрос Код:
меняю в запросе LEFT на RIGHT получаю Если добавить Код:
а мне нужно Как нужно поправить запрос? заранее спасибо |
09.08.2015, 08:55 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Что-т я не оч. понял что тебе нужно...
Вообще первая мысль, которая пришла в голову: Собрать приход и расход через union отдельными запросами. Но может ты подробнее пояснишь задачу.
I'm learning to live...
|
09.08.2015, 15:46 | #3 |
Форумчанин
Регистрация: 18.02.2008
Сообщений: 198
|
Тоже подумал про UNION, но не умею им пользоваться.
Проблема в том что в t2.t1id может быть NULL. Мне нужно сделать совместную выборку из двух таблиц результат которой показан на последнем скрине. В принципе получается с первым запросом. (screen 1 LEFT OUTER JOIN) туда бы еще добавить дату сумму и примечание. Если изменю запрос LEFT OUTER JOIN на RIGHT OUTER JOIN по получается screen 2, где присутствуют поля дата сумма и примечание НО отсутствуют платеж, №, назначение, фактура. Короче совместить бы LEFT OUTER JOIN и RIGHT OUTER JOIN Есть идеи? |
09.08.2015, 16:24 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну попробуй:
Код:
I'm learning to live...
|
09.08.2015, 17:03 | #5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Это называется full outer join. Не знаю, поддерживает ли его SQL Server. Это же SQL Server?
В разработке: воспроизводственный контур ИТ
|
09.08.2015, 18:07 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Поддерживает. Только ТС сам не знает, что хочет получить. Дай развернутый пример - нескольких записей одной и второй таблицы и что из них получить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.08.2015, 19:44 | #7 |
Форумчанин
Регистрация: 18.02.2008
Сообщений: 198
|
Спасибо за советы. Попробовал все. Union, Union all, Full outer join - результат приближенный но не тот.
Самый близкий результат при запросе Код:
Нужно как-то вывести дату и сумму прихода Вот данные в таблицах T1 (платежи и приходы) T2 (движение денег) Результатом хочу видеть Зачеркнутой записи вообще не должно быть. Потому что для этой записи T2.t1id is null |
09.08.2015, 19:50 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
09.08.2015, 20:24 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну и на каком основании последняя запись должна получаться? Что делать, если в T2 100 записей с t1id=NULL? Пусть 2?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
10.08.2015, 09:32 | #10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
или наоборот берем только нужное Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 10.08.2015 в 09:43. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составление выборки из двух таблиц | Simply-Art | SQL, базы данных | 3 | 29.09.2014 14:54 |
Проблема в выборке из двух таблиц запросом SQL Server 2012 | qpash | SQL, базы данных | 2 | 19.03.2014 10:04 |
Получение данных из двух таблиц SQL Server а | S_Yevgeniy | БД в Delphi | 8 | 27.12.2009 15:12 |
sql запрос на выборку записей из двух связанных таблиц | Люсьен | БД в Delphi | 9 | 20.04.2009 16:07 |
SQL запрос из двух таблиц.(сложный) | Miha87 | БД в Delphi | 5 | 10.11.2008 11:04 |