|
Вложенный запрос выходит пустым | ☑ | ||
---|---|---|---|---|
0
Coldboy
27.08.14
✎
14:34
|
Здравствуйте. Есть два запроса, по отдельности оба работают, когда их соедению выборку через вложенные делаю, а затем сравнивая параметры получаю нужный, выдает пустой результат. Почему?
Вот сам запрос: "ВЫБРАТЬ | ВЫБОР | КОГДА НеПустой.Период >= ПустойСклад.Период | ТОГДА НеПустой.ЧелКомплект | ИНАЧЕ ПустойСклад.ЧелКомплект | КОНЕЦ КАК ЧелКомплект |ИЗ | (ВЫБРАТЬ | ТаблицаСвязиЧелКомплектаСрезПоследних.ЧелКомплект КАК ЧелКомплект, | ТаблицаСвязиЧелКомплектаСрезПоследних.Период КАК Период | ИЗ | РегистрСведений.ТаблицаСвязиЧелКомплекта.СрезПоследних( | &Период, | Номенклатура = &Номенклатура | И Склад = &ПустойСклад) КАК ТаблицаСвязиЧелКомплектаСрезПоследних) КАК ПустойСклад, | (ВЫБРАТЬ | ТаблицаСвязиЧелКомплектаСрезПоследних.Период КАК Период, | ТаблицаСвязиЧелКомплектаСрезПоследних.ЧелКомплект КАК ЧелКомплект | ИЗ | РегистрСведений.ТаблицаСвязиЧелКомплекта.СрезПоследних( | &Период, | Номенклатура = &Номенклатура | И Склад = &Склад) КАК ТаблицаСвязиЧелКомплектаСрезПоследних) КАК НеПустой" |
|||
1
butterbean
27.08.14
✎
14:36
|
а связи где??
|
|||
2
Ёпрст
27.08.14
✎
14:36
|
(0) поля местами поменяй
|
|||
3
Ёпрст
27.08.14
✎
14:37
|
(1) ? там кросс джоин
|
|||
4
Coldboy
27.08.14
✎
14:39
|
(2) какие именно?
|
|||
5
Ёпрст
27.08.14
✎
14:41
|
(4) да в селекте попробуй , чтоб в обоих запросах поля были в одинаковом порядке ЧелКомплект, Период (хотя, это пофигу, но мало ли :) )
|
|||
6
Ёпрст
27.08.14
✎
14:41
|
А ежели
Выбрать * ИЗ... Кажет че ? |
|||
7
butterbean
27.08.14
✎
14:44
|
я может чего-то не понимаю, но там ведь результат типа:
Период1 NULL Период2 NULL NULL Период3 NULL Период4 |
|||
8
Coldboy
27.08.14
✎
14:44
|
(5) без разницы пробывал.
|
|||
9
Coldboy
27.08.14
✎
14:44
|
(7) это же не объединение.
|
|||
10
Ёпрст
27.08.14
✎
14:45
|
(8) ага, а (6) ?
|
|||
11
Wobland
27.08.14
✎
14:46
|
хочешь сказать, что таб1 или таб2 что-то содержат, а их произведение - нет?
|
|||
12
Крошка Ру
27.08.14
✎
14:47
|
(8)Вот это он как определит:
КОГДА НеПустой.Период >= ПустойСклад.Период ежели связи нет? |
|||
13
Ёпрст
27.08.14
✎
14:48
|
(12) :)
какая связь нужна при cross join ? |
|||
14
Coldboy
27.08.14
✎
14:48
|
(11) таб2 содержит, таб1 нет, а произведение их ничего не содержит, хотя должно.
|
|||
15
Ёпрст
27.08.14
✎
14:49
|
Че кажет (6) ?
|
|||
16
Wobland
27.08.14
✎
14:50
|
(14) протирай телескоп
|
|||
17
Coldboy
27.08.14
✎
14:50
|
КОГДА ЕСТЬNULL(НеПустой.Период, ДАТАВРЕМЯ(1, 1, 1)) >= ЕСТЬNULL(ПустойСклад.Период, ДАТАВРЕМЯ(1, 1, 1))
|
|||
18
Coldboy
27.08.14
✎
14:50
|
(16) пробывал и так и все равно.
|
|||
19
Simod
27.08.14
✎
14:51
|
Замени ВЫБОР на * как в (6). Сразу все понятно станет.
|
|||
20
Coldboy
27.08.14
✎
14:54
|
(19) ?
(6) все пояли если беру все равно. |
|||
21
Coldboy
27.08.14
✎
14:55
|
(16) что не так ?
|
|||
22
Крошка Ру
27.08.14
✎
14:56
|
(13) Чот не догоняю. По сути выборка из двух независимых друг от друга вложенных запросов. Как определить какое значение "НеПустой.Период" соответствует какому значению "ПустойСклад.Период", чтоб их сравнить?
|
|||
23
Ёпрст
27.08.14
✎
14:56
|
(14) А че ты хочешь тогда ?
Там всегда будет пустая выборка - це же произведение |
|||
24
Ёпрст
27.08.14
✎
14:56
|
Вот ежели был бы full join - были бы строчки
|
|||
25
Ёпрст
27.08.14
✎
14:57
|
а так, cross join с пустой табличкой даст пустую табличку
|
|||
26
Coldboy
27.08.14
✎
14:58
|
(25) так как мне быть ?
|
|||
27
Ёпрст
27.08.14
✎
14:58
|
(26) ну не знаю, мот тебя union all устроит просто?
|
|||
28
Coldboy
27.08.14
✎
14:58
|
все догнал связи не сделал.
|
|||
29
Ёпрст
27.08.14
✎
14:59
|
или full join
|
|||
30
Coldboy
27.08.14
✎
14:59
|
"ВЫБРАТЬ
| ВЫБОР | КОГДА ЕСТЬNULL(НеПустой.Период, ДАТАВРЕМЯ(1, 1, 1)) >= ЕСТЬNULL(ПустойСклад.Период, ДАТАВРЕМЯ(1, 1, 1)) | ТОГДА НеПустой.ЧелКомплект | ИНАЧЕ ПустойСклад.ЧелКомплект | КОНЕЦ КАК ЧелКомплект |ИЗ | (ВЫБРАТЬ | ТаблицаСвязиЧелКомплектаСрезПоследних.Период КАК Период, | ТаблицаСвязиЧелКомплектаСрезПоследних.Номенклатура КАК Номенклатура, | ТаблицаСвязиЧелКомплектаСрезПоследних.ЧелКомплект КАК ЧелКомплект, | ТаблицаСвязиЧелКомплектаСрезПоследних.ГотоваяПродукция КАК ГотоваяПродукция, | ТаблицаСвязиЧелКомплектаСрезПоследних.Склад КАК Склад | ИЗ | РегистрСведений.ТаблицаСвязиЧелКомплекта.СрезПоследних( | &Период, | Номенклатура = &Номенклатура | И Склад = &Склад) КАК ТаблицаСвязиЧелКомплектаСрезПоследних) КАК НеПустой | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТаблицаСвязиЧелКомплектаСрезПоследних.Период КАК Период, | ТаблицаСвязиЧелКомплектаСрезПоследних.Номенклатура КАК Номенклатура, | ТаблицаСвязиЧелКомплектаСрезПоследних.ЧелКомплект КАК ЧелКомплект, | ТаблицаСвязиЧелКомплектаСрезПоследних.ГотоваяПродукция КАК ГотоваяПродукция, | ТаблицаСвязиЧелКомплектаСрезПоследних.Склад КАК Склад | ИЗ | РегистрСведений.ТаблицаСвязиЧелКомплекта.СрезПоследних( | &Период, | Номенклатура = &Номенклатура | И Склад = &ПустойСклад) КАК ТаблицаСвязиЧелКомплектаСрезПоследних) КАК ПустойСклад | ПО НеПустой.ЧелКомплект = ПустойСклад.ЧелКомплект" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |