powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Соединить 3 таблицы
6 сообщений из 6, страница 1 из 1
Соединить 3 таблицы
    #39584978
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется найти отрицательные остатки на текущую дату по заказчику и договору.
Есть 3 таблицы.
FinbalContract - Выверенные остатки на дату
И таблица платежей и продаж.

Нарисовал запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select isnull(f.sm,0)+isnull(p.sm,0)-isnull(s.sm,0) sm,isnull(f.id_custom,ISNULL(p.id_custom,s.id_custom)) id_custom,ISNULL(f.dogid,isnull(p.id_dog,s.id_dog)) id_dog from 
	(SELECT sm, ID_CUSTOM, DogID 
		FROM dbo.FinbalContract
		WHERE dat = '20171201'
			and ismark=0
		) AS f 
	full join
	(SELECT SUM(sm) AS sm, id_custom,  id_dog
		FROM dbo.Pay AS p
		WHERE dat >= '20171201'
			and ismark=0
		GROUP BY id_custom, id_dog) as p 
	on p.id_custom=f.ID_CUSTOM and p.id_dog=f.DogID		 
	full join
	(SELECT SUM(sm) AS sm, ID_CUSTOM, id_dog
		FROM dbo.sale
		WHERE dat >= '20171201' 
			AND ismark = 0
		GROUP BY ID_CUSTOM, id_dog) as s
		on p.id_custom=s.ID_CUSTOM and p.id_dog=s.id_dog


Но как соединить 3 таблицы, что бы не было повторов заказчиков (договоров)?
...
Рейтинг: 0 / 0
Соединить 3 таблицы
    #39585017
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,

Наверное, нужно добавить еще одну выборку - уникальную таблицу заказчиков и договоров и уже к ней джоинить остальные три запроса:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select ID_CUSTOM, DogID 
FROM dbo.FinbalContract
WHERE dat = '20171201'
    and ismark=0
union
select id_custom,  id_dog
FROM dbo.Pay AS p
WHERE dat >= '20171201'
and ismark=0
GROUP BY id_custom, id_dog
union
select ID_CUSTOM, id_dog
FROM dbo.sale
WHERE dat >= '20171201' 
AND ismark = 0


GROUP BY ID_CUSTOM, id_dog
...
Рейтинг: 0 / 0
Соединить 3 таблицы
    #39585019
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sorry:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select ID_CUSTOM, DogID 
FROM dbo.FinbalContract
WHERE dat = '20171201'
    and ismark=0
union
select id_custom,  id_dog
FROM dbo.Pay AS p
WHERE dat >= '20171201'
and ismark=0
GROUP BY id_custom, id_dog
union
select ID_CUSTOM, id_dog
FROM dbo.sale
WHERE dat >= '20171201' 
AND ismark = 0
GROUP BY ID_CUSTOM, id_dog
...
Рейтинг: 0 / 0
Соединить 3 таблицы
    #39585033
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin Dmitry,
Да. Спасибо. Уже сообразил.
...
Рейтинг: 0 / 0
Соединить 3 таблицы
    #39585036
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,
Только почему и зачем union ?
Я просто соединил с исходными таблицами
...
Рейтинг: 0 / 0
Соединить 3 таблицы
    #39585038
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,
Таблицы еще бы нарисовали - цена бы вам не было.
Лом напрягаться без примеров таблиц.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Соединить 3 таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]