|
Запрос. Исключить выборку одной таблицы из выборки другой. | ☑ | ||
---|---|---|---|---|
0
JackАndJill
30.12.13
✎
13:10
|
Здравствуйте. Собственно, есть два запроса. Один выдает данные, содержащие в том числе ненужные строки. Второй выдает только строки, которые не нужны. Надо исключить из первой выборки те строки, что содержатся во второй.
|
|||
1
Wobland
30.12.13
✎
13:11
|
так. что дальше?
|
|||
2
БешНог
30.12.13
✎
13:11
|
соедини, будь мужиком, блеать!
|
|||
3
dj_serega
30.12.13
✎
13:12
|
(2) Только "НЕ" не забыть.
|
|||
4
JackАndJill
30.12.13
✎
13:12
|
(2) Я получу строки, содержащиеся в обеих таблицах.
|
|||
5
Strogg
30.12.13
✎
13:14
|
left outer join. Както так, если мне не изменяет памьять :)
|
|||
6
JackАndJill
30.12.13
✎
13:14
|
(3) Поставив НЕ, получаю произведение таблиц. Т.е. строк будет X * Y
|
|||
7
БешНог
30.12.13
✎
13:14
|
соедини и выбери где есть нул
|
|||
8
Wobland
30.12.13
✎
13:15
|
(4) отфильтруй, бл***
|
|||
9
JackАndJill
30.12.13
✎
13:19
|
Вот первый запрос:
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Сотрудник ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( , ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) И Сотрудник.ТекущаяСтавка <> 0 И Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)) КАК РаботникиОрганизацийСрезПоследних |
|||
10
JackАndJill
30.12.13
✎
13:20
|
Вот второй:
ВЫБРАТЬ СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник КАК Сотрудник ИЗ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних КАК СостояниеРаботниковОрганизацийСрезПоследних ГДЕ СостояниеРаботниковОрганизацийСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком) И &ТекущаяДата МЕЖДУ СостояниеРаботниковОрганизацийСрезПоследних.Период И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник ИЗ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(, ) КАК СостояниеРаботниковОрганизацийСрезПоследних ГДЕ СостояниеРаботниковОрганизацийСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоБеременностиИРодам) И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1) И СостояниеРаботниковОрганизацийСрезПоследних.Период < &ТекущаяДата |
|||
11
JackАndJill
30.12.13
✎
13:21
|
Из стандартной ЗУП.
|
|||
12
МихаилМ
30.12.13
✎
13:26
|
на прошлой неделе был аналогичный вопрос.
в поиск |
|||
13
JackАndJill
30.12.13
✎
13:33
|
Ага, кажется сделал.
|
|||
14
JackАndJill
30.12.13
✎
13:37
|
Полное соединение и потом фильтр, 7,8 спс.
|
|||
15
mzelensky
30.12.13
✎
13:57
|
(0) Буквально на тай неделе эта тема ОООЧЕНЬ плотно обсасывалась.
|
|||
16
Goggy
30.12.13
✎
14:10
|
(14) В одно действие левым соединением.
|
|||
17
mistеr
30.12.13
✎
14:22
|
"НЕ В ()" уже предлагали?
|
|||
18
Пол Ньюман
30.12.13
✎
14:34
|
Любое поле из второй таблицы
ISNULL(ВтораяТаблица.ИмяПоля, НЕОПРЕДЕЛЕНО) в условии ВтораяТаблица.ИмяПоля = Неопределено Хотя может и ВтораяТаблица.ИмяПоля IS NULL прокатит, там есть ограничения при соединении по NULL, но про условие не помню |
|||
19
Goggy
31.12.13
✎
10:49
|
Сразу видно кто на клюшках пилит свой Гкод)))
|
|||
20
sanja26
31.12.13
✎
10:51
|
(17) а если в млн записей?
|
|||
21
mistеr
31.12.13
✎
12:09
|
(20) То что?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |