powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите Select построить, никак не справлюсь
7 сообщений из 7, страница 1 из 1
Помогите Select построить, никак не справлюсь
    #32048141
denis_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 таблицы с отпусками:
1 табл.:

t1

id date1 date2
1 01.01.2002 05.01.2002
1 02.02.2002 05.02.2002
1 03.03.2002 06.03.2002

2 табл.
t2

id date1 date2
1 01.01.2002 05.01.2002
1 02.02.2002 06.02.2002

связь по id

SELECT должен выдать те записи кот. не совпадают
по date1 и по date2 в этих таблицах:

id t1.date1 t1.date2 t2.date1 t2.date2
1 02.02.2002 05.02.2002 NULL NULL
1 03.03.2002 06.03.2002 NULL NULL
1 NULL NULL 02.02.2002 06.02.2002
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048144
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from ..... left outer join.... where righttable.date1 is null
union
select * from ..... right outer join.... where lefttable.date1 is null

Сорри, полностью выписывать синтаксис лень.
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048165
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно использовать и full join с теми же условиями... быстрее будет :)
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048172
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AAron

Я тоже думал про full outer join но почему то стормозил, Вы правы конечно.
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048178
Фотография Александр Степанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
create table t1
(
	id int not null,
	date1 datetime not null,
	date2 datetime not null
)

create table t2
(
	id int not null,
	date1 datetime not null,
	date2 datetime not null
)
GO

insert into t1 values( 1 , '01.01.2002', '05.01.2002')
insert into t1 values( 1 , '02.02.2002', '05.02.2002')
insert into t1 values( 1 , '03.03.2002', '06.03.2002')

insert into t2 values( 1 , '01.01.2002', '05.01.2002')
insert into t2 values( 1 , '02.02.2002', '06.02.2002') 
GO

Select
	isnull(t1.id,t2.id),
	t1.date1 as [t1.date1],
	t1.date2 as [t1.date2],
	t2.date1 as [t2.date1],
	t2.date2 as [t2.date2]
From
	t1
	full outer join t2
		on t1.id=t2.id and t1.date1=t2.date1 and t1.date2=t2.date2
Where
	t1.id Is NULL or t2.id Is NULL

drop table t1
drop table t2


В случае, если запросы
Код: plaintext
1.
2.
Select DISTINCT id From t1
Select DISTINCT id from t2

будут возвращать разные наборы, то в итоги попадут строки из обоих таблиц, для id которых не найдется пары в другой таблице.

С уважением,
Александр Степанов
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048372
denis_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за помощь. Очень помогли.
...
Рейтинг: 0 / 0
Помогите Select построить, никак не справлюсь
    #32048377
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AAron

Кстати, насчет скорости я бы не торопился выводы делать, фиг его знает как это оптимизатор отработает, все таки декартово произведение таблиц ресурсы приличные забирает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите Select построить, никак не справлюсь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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