|
фильтр по виртуальной таблице в запросе | ☑ | ||
---|---|---|---|---|
0
LivingStar
14.08.12
✎
11:33
|
делаю виртуальную таблицу после чего нужно по ней отфильтровать выборку
условие НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка) И не срабытывает, фильтр фильтрует, но почему то не все записи... |
|||
1
DrShad
14.08.12
✎
11:34
|
а текст запроса слабо выложить?
|
|||
2
DrShad
14.08.12
✎
11:34
|
в (0) какая-то жестяная жесть - много букв и ни о чем
|
|||
3
Рэйв
14.08.12
✎
11:35
|
(2)Он просто наивно думает, что все тут помнят содержание всех его прошлых веток:-)
|
|||
4
DrShad
14.08.12
✎
11:36
|
(3) :))))
|
|||
5
LivingStar
14.08.12
✎
11:44
|
(1) ВЫБРАТЬ
Абонент.Ссылка КАК Абонент, ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = "" ТОГДА "" ИНАЧЕ КонтактнаяИнформация.Индекс + ", " КОНЕЦ + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "") КОНЕЦ + ". " + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения ИНАЧЕ "" КОНЕЦ КОНЕЦ + "." + ВЫБОР КОГДА КонтактнаяИнформация.Квартира = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА ", д." + КонтактнаяИнформация.Дом ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус КОНЕЦ КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ КОНЕЦ КАК Адрес, КонтактнаяИнформация.Улица КАК Улица, КонтактнаяИнформация.НомерДомаЧисло КАК НомерДомаЧисло, КонтактнаяИнформация.НомерКвартирыЧисло КАК НомерКвартирыЧисло, КонтактнаяИнформация.НомерПодъезда КАК НомерПодъезда, КонтактнаяИнформация.НомерКомнаты КАК НомерКомнаты, Абонент.Ссылка.ЛицевойСчет КАК ЛицевойСчет, КонтактнаяИнформация.Индекс, ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = "" ТОГДА "" ИНАЧЕ КонтактнаяИнформация.Индекс + ", " КОНЕЦ + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "") КОНЕЦ + ". " + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + "" КОНЕЦ КАК Адрес1, ВЫБОР КОГДА КонтактнаяИнформация.Квартира = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом ИНАЧЕ "" КОНЕЦ ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ КОНЕЦ КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира КАК Адрес2, ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения ИНАЧЕ "" КОНЕЦ КАК Адрес3, КонтактнаяИнформация.Город, КонтактнаяИнформация.Город.НаименованиеБезСокращения, КонтактнаяИнформация.Город.Сокращение, КонтактнаяИнформация.НаселенныйПункт.Ссылка, КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, КонтактнаяИнформация.НаселенныйПункт.Сокращение, КонтактнаяИнформация.Улица.Сокращение, КонтактнаяИнформация.Улица.НаименованиеБезСокращения ПОМЕСТИТЬ ВТ_КонтактнаяИнформация ИЗ Справочник.Абоненты КАК Абонент ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО Абонент.Ссылка = КонтактнаяИнформация.Объект И (КонтактнаяИнформация.ТипКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) И (КонтактнаяИнформация.ВидКонтактнойИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресАбонента)) СГРУППИРОВАТЬ ПО КонтактнаяИнформация.Улица, КонтактнаяИнформация.НомерДомаЧисло, КонтактнаяИнформация.НомерКвартирыЧисло, КонтактнаяИнформация.НомерПодъезда, КонтактнаяИнформация.НомерКомнаты, Абонент.Ссылка, Абонент.Ссылка.ЛицевойСчет, КонтактнаяИнформация.Индекс, ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения ИНАЧЕ "" КОНЕЦ, КонтактнаяИнформация.Город, КонтактнаяИнформация.Город.НаименованиеБезСокращения, КонтактнаяИнформация.Город.Сокращение, КонтактнаяИнформация.НаселенныйПункт.Ссылка, КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, КонтактнаяИнформация.НаселенныйПункт.Сокращение, КонтактнаяИнформация.Улица.Сокращение, КонтактнаяИнформация.Улица.НаименованиеБезСокращения, ВЫБОР КОГДА КонтактнаяИнформация.Квартира = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом ИНАЧЕ "" КОНЕЦ ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ ИНАЧЕ "" КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп. " + КонтактнаяИнформация.Корпус + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ КОНЕЦ КОНЕЦ + ", кв." + КонтактнаяИнформация.Квартира, ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = "" ТОГДА "" ИНАЧЕ КонтактнаяИнформация.Индекс + ", " КОНЕЦ + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.Сокращение, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.Сокращение, "") КОНЕЦ + ". " + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") = "" ТОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") ИНАЧЕ ЕСТЬNULL(КонтактнаяИнформация.Город.НаименованиеБезСокращения, "") + ", " + ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения, "") <> "" ТОГДА КонтактнаяИнформация.НаселенныйПункт.Сокращение + ". " + КонтактнаяИнформация.НаселенныйПункт.НаименованиеБезСокращения ИНАЧЕ "" КОНЕЦ КОНЕЦ + "." + ВЫБОР КОГДА КонтактнаяИнформация.Квартира = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА ", д." + КонтактнаяИнформация.Дом ИНАЧЕ ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", корп." + КонтактнаяИнформация.Корпус КОНЕЦ КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Улица.НаименованиеБезСокращения, "") = "" ТОГДА ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Корпус, "") = "" ТОГДА ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира ИНАЧЕ ", корп." + КонтактнаяИнформация.Корпус + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ ИНАЧЕ КонтактнаяИнформация.Улица.Сокращение + ". " + КонтактнаяИнформация.Улица.НаименованиеБезСокращения + ", д." + КонтактнаяИнформация.Дом + ", кв." + КонтактнаяИнформация.Квартира КОНЕЦ КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Договоры.Владелец, Договоры.Ссылка, Договоры.ДатаОкончания, Договоры.УслугаНаселению, Договоры.УслугаНаселению.Родитель, Договоры.Подразделение ПОМЕСТИТЬ ВТ_ДействующиеДоговора ИЗ Справочник.Договоры КАК Договоры ГДЕ Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И (Договоры.ДатаОкончания > &ДатаОкончанияДоговора ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) И Договоры.Подразделение = &Подразделение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Абоненты.Ссылка КАК Абонент, ВТ_КонтактнаяИнформация.Город, Договоры.Ссылка КАК Договор, Договоры.УслугаНаселению, Договоры.УслугаНаселению.Родитель, Договоры.ДатаОкончания, ВТ_ДействующиеДоговора.Ссылка ИЗ ВТ_ДействующиеДоговора КАК ВТ_ДействующиеДоговора ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация ПО Абоненты.Ссылка = ВТ_КонтактнаяИнформация.Абонент ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры ПО Абоненты.Ссылка = Договоры.Владелец ПО ВТ_ДействующиеДоговора.Владелец = Абоненты.Ссылка ГДЕ НЕ Абоненты.Ссылка В (ВТ_ДействующиеДоговора.Владелец) И (Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И Договоры.ДатаОкончания < &ДатаОкончанияДоговора И ВТ_КонтактнаяИнформация.Город.Наименование = &Город) |
|||
6
Buster007
14.08.12
✎
11:46
|
ничо так
ВЫБОР КОГДА ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") = "" ТОГДА "" ИНАЧЕ КонтактнаяИнформация.Индекс а это не равноценно ЕСТЬNULL(КонтактнаяИнформация.Индекс, "") ? |
|||
7
LivingStar
14.08.12
✎
11:47
|
(6) равноценно
|
|||
8
DrShad
14.08.12
✎
11:48
|
(5) какой же мля адский отжиг - все в топку и переписать заново
|
|||
9
LivingStar
14.08.12
✎
11:48
|
в ПОМЕСТИТЬ ВТ_ДействующиеДоговора помещена выборка абонентов по владельцу
как по ней отфильтровать финальный запрос что бы не было там тех абонентов? |
|||
10
Buster007
14.08.12
✎
11:49
|
ПО ВТ_ДействующиеДоговора.Владелец = Абоненты.Ссылка
И после этого условие НЕ Абоненты.Ссылка В (ВТ_ДействующиеДоговора.Владелец) что за бред? |
|||
11
Buster007
14.08.12
✎
11:50
|
(9) присоединяй к справочнику абоненты действующие договора и выбирай только те, где ДействующиеДоговора.Владелец Есть NULL
|
|||
12
zladenuw
14.08.12
✎
11:50
|
НЕ Договоры.Ссылка В (Выбрать ВТ_ДействующиеДоговора.Ссылка ИЗ ВТ_ДействующиеДоговора КАК ВТ_ДействующиеДоговора)
|
|||
13
LivingStar
14.08.12
✎
11:57
|
(10) ну а если не связывать то как таблицу то использовать? иначе выборка зависает
|
|||
14
LivingStar
14.08.12
✎
11:58
|
(11) мне нужно наоборот исключить действующие договора
|
|||
15
Buster007
14.08.12
✎
12:03
|
(14) учи мат часть.
|
|||
16
Лоботряс
14.08.12
✎
12:05
|
Сгруппируй ВТ_ДействующиеДоговора по владельцу, остальные поля в этом запросе не нужны
и в отборе будет НЕ Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец) |
|||
17
LivingStar
14.08.12
✎
12:41
|
(16)
а такой фильтр пойдёт? ВЫБРАТЬ Договоры.Владелец, Договоры.Ссылка, Договоры.ДатаОкончания, Договоры.УслугаНаселению, Договоры.УслугаНаселению.Родитель, Договоры.Подразделение ПОМЕСТИТЬ ВТ_ДействующиеДоговора ИЗ Справочник.Договоры КАК Договоры ГДЕ Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И (Договоры.ДатаОкончания > &ДатаОкончанияДоговора ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) И Договоры.Подразделение = &Подразделение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Абоненты.Ссылка КАК Абонент, ВТ_КонтактнаяИнформация.Город, Договоры.Ссылка КАК Договор, Договоры.УслугаНаселению, Договоры.УслугаНаселению.Родитель, Договоры.ДатаОкончания, ВТ_ДействующиеДоговора.Ссылка ИЗ ВТ_ДействующиеДоговора КАК ВТ_ДействующиеДоговора ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация ПО Абоненты.Ссылка = ВТ_КонтактнаяИнформация.Абонент ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры ПО Абоненты.Ссылка = Договоры.Владелец ПО ВТ_ДействующиеДоговора.Владелец = Абоненты.Ссылка ГДЕ НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка) И (Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И Договоры.ДатаОкончания < &ДатаОкончанияДоговора И ВТ_КонтактнаяИнформация.Город.Наименование = &Город) |
|||
18
Лоботряс
14.08.12
✎
12:59
|
(17)если бы ты знал какой бред ты сейчас написал...
ВЫБРАТЬ Договоры.Владелец КАк Абонент, Договоры.Ссылка КАК Договор, Договоры.ДатаОкончания, Договоры.УслугаНаселению, Договоры.УслугаНаселению.Родитель, Договоры.Подразделение ИЗ Справочник.Договоры КАК Договоры ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КонтактнаяИнформация КАК ВТ_КонтактнаяИнформация ПО Договоры.Владелец = ВТ_КонтактнаяИнформация.Абонент ГДЕ Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И (Договоры.ДатаОкончания > &ДатаОкончанияДоговора ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) И Договоры.Подразделение = &Подразделение И ВТ_КонтактнаяИнформация.Город.Наименование = &Город) |
|||
19
Лоботряс
14.08.12
✎
13:00
|
(18)+ добавить в выбранные поля
ВТ_КонтактнаяИнформация.Город, |
|||
20
LivingStar
14.08.12
✎
13:24
|
дело в том что, вот это условие
ГДЕ НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка) И Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И Договоры.ДатаОкончания < &ДатаОкончанияДоговора И ВТ_КонтактнаяИнформация.Город.Наименование = &Город И Договоры.Подразделение = &Подразделение все же фильтрует на действующие договора, но в выборке остаются абоненты с просроченными договорами, а так как у них есть действующие другие договора, то они не должны попадать в выборку... НЕ Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец) - вот это условие фильтровало бы по абоненту, но при его вставке, за место НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка) выборка пустая ((( |
|||
21
LivingStar
14.08.12
✎
13:49
|
upp
|
|||
22
LivingStar
14.08.12
✎
14:38
|
короче я не смог это выбрать запросом !!!
|
|||
23
LivingStar
15.08.12
✎
06:53
|
почему при использовании в запросе условия НЕ Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец)
он ничего не выбирает? |
|||
24
France
15.08.12
✎
06:54
|
а на что должен действовать "НЕ"??
|
|||
25
LivingStar
15.08.12
✎
06:59
|
(24) на владельца договора то есть на абонента
из выборки должны исключиться те вбоненты которые есть в фильтре ВТ_ДействующиеДоговора.Владелец но выборка вообще вся пропадает ( |
|||
26
Светлый Гений
15.08.12
✎
07:34
|
(25)а без "НЕ" что-нибудь выбирает?
|
|||
27
Светлый Гений
15.08.12
✎
07:35
|
а вообще, правильно писать
Договоры.Владелец В (ВЫБРАТЬ ВТДД.Владелец ИЗ ВТ_ДействующиеДоговора КАК ВТДД) |
|||
28
LivingStar
15.08.12
✎
07:37
|
(26) да выбирает
(27) ну на работу то не влияет наверное? |
|||
29
France
15.08.12
✎
07:42
|
(25) я хотел сказать, что НЕ работает с логическим типом... результатом вот этого "Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец)" будет Булево
|
|||
30
France
15.08.12
✎
07:42
|
это был вопрос.
|
|||
31
Светлый Гений
15.08.12
✎
07:44
|
(28) да фиг знает, может и не влияет. Если не влияет, то буду иметь ввиду )
|
|||
32
Лоботряс
15.08.12
✎
07:56
|
(27) все там правильно, учи матчасть
|
|||
33
Лоботряс
15.08.12
✎
08:01
|
(28) Я тебе советовал уже как то в другой ветке, начать с того чтобы сформулировать и понятно описать что именно ты хочешь получить. Потому что в (20) ты сам понял что сказал?
|
|||
34
LivingStar
15.08.12
✎
08:45
|
(33) там я говорю что сперва выбираю действующие договора у которых дата больше текущей или пустая, значит они бессрочные, все по одному родителю
потом делаю отбор по полученному фильтру с другой выборкой условие НЕ Договоры.Ссылка В (ВТ_ДействующиеДоговора.Ссылка) срабатывает, но фильтрует только на действующие договора, то есть исключает их, но остаются просроченные договора по абонентам, но так как у них есть действующие дата которых больше текущей или бессрочные, эти абоненты не должны попадать в выборку, и тут уже вопрос, почему условие НЕ Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец) которое по идее должно исключать из выборки абонентов по фильтру, вообще формирует пустую выборку |
|||
35
Лоботряс
15.08.12
✎
08:55
|
(34)Вопрос <<почему условие НЕ Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец) которое по идее должно исключать из выборки абонентов по фильтру, вообще формирует пустую выборку>> Ответ. Видимо потому что в таблице ВТ_ДействуюшиеДоговора присутствуют владельцы абсолютно всех договоров. Т.е. согласно твоим отборам в первом пакетном запросе - все договора действующие. Либо там ошибка в условии отбора.
|
|||
36
LivingStar
15.08.12
✎
09:00
|
(35) да нет не все, там их часть, всего договоров вообще немеренно, ВТ_ДействующиеДоговора отбирает только те которые реально действуют как я видел, похоже правильно отбирает
только вот почему то не фильтрует по ним ( ... |
|||
37
Лоботряс
15.08.12
✎
09:05
|
Короче двумя словами тебе надо выбрать все НЕ действующие договора?
|
|||
38
Лоботряс
15.08.12
✎
09:07
|
Напиши не что ты делаешь, а что хочешь получить в итоге...
|
|||
39
LivingStar
15.08.12
✎
09:19
|
(37) нужно выбрать всех абонентов с которыми не заключены договора из определенной группы реквизита Услуги договора, у которых договора заключены, но просрочены, то есть дата окончания меньше или равно текущей
в выборку не должны попадать договора у которых дата окончания больше текущей, или отсутствует когда то есть договор бессрочный |
|||
40
LivingStar
15.08.12
✎
09:21
|
(39+) учитывая что
1. у абонента может быть договор не из нужной группа реквизита услуги договора 2. что у него есть договор из нужной группы реквизита услуги договора но он просрочен 3. а так же есть бессрочный договор из нужной группы реквизита услуги договора, либо он ещё действует имея такие 3 договора абонент не должен оказаться в выборке |
|||
41
Лоботряс
15.08.12
✎
09:36
|
ВЫБРАТЬ
Абоненты.Ссылка КАК Абонент, ИЗ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры ПО Абоненты.Ссылка = Договоры.Владелец (Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО) И (Договоры.ДатаОкончания > &ТекущаяДата ИЛИ Договоры.ДатаОкончания = Датавремя(1,1,1)) Где Договоры.Ссылка есть NULL |
|||
42
Лоботряс
15.08.12
✎
09:40
|
Иными словами берешь таблицу Абоненты присоединяешь к ней Левым соединением таблицу действующих договоров и отбираешь только те записи где любое поле из таблицы договоры пустое.
|
|||
43
LivingStar
15.08.12
✎
10:08
|
(42) ок, спасибо большое, сейчас посмотрю...
|
|||
44
LivingStar
15.08.12
✎
10:11
|
(42) ругается на есть NULL так можно писать?
и ГДЕ наверное должна быть после = Договоры.Владелец |
|||
45
LivingStar
15.08.12
✎
10:16
|
ВЫБРАТЬ
Абоненты.Ссылка КАК Абонент ИЗ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры ПО Абоненты.Ссылка = Договоры.Владелец (Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)) И( Договоры.ДатаОкончания > &ТекущаяДата ИЛИ Договоры.ДатаОкончания = Датавремя(1,1,1)) ГДЕ Договоры.Ссылка есть NULL ошибка: Текст запроса: Строка 7: {(7,2)}: Синтаксическая ошибка "(Договоры.УслугаНаселению" <<?>>(Договоры.УслугаНаселению В ИЕРАРХИИ(&ВДГО)) |
|||
46
Лоботряс
15.08.12
✎
10:16
|
(44)<<ругается на есть NULL так можно писать?>> нужно.
<<и ГДЕ наверное должна быть после = Договоры.Владелец>> нет. Я специально перенес отбор на действующие договора в условия соединения таблиц. После <<Договоры.Владелец>> поставь <<И>>(у меня там ошибка). |
|||
47
LivingStar
15.08.12
✎
10:19
|
(46) понял спасибо!
|
|||
48
LivingStar
15.08.12
✎
10:23
|
ВЫБРАТЬ
Абоненты.Ссылка КАК Абонент, Договоры.Ссылка, Договоры.УслугаНаселению.Родитель, Договоры.ДокументОснование ИЗ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры ПО Абоненты.Ссылка = Договоры.Владелец И (Договоры.УслугаНаселению В ИЕРАРХИИ (&ВДГО)) И (Договоры.ДатаОкончания > &ТекущаяДата ИЛИ Договоры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)) ГДЕ Договоры.Ссылка ЕСТЬ NULL Договоры.Ссылка, Договоры.УслугаНаселению.Родитель, Договоры.ДокументОснование в этих полях пустые значения, а как же просроченные договоры, и договоры заключенные не с этим родителем реквизита услуга все же странная выборка, нужно мне будет поразбираться.... ни одного договора не показалось.... |
|||
49
LivingStar
15.08.12
✎
10:24
|
(48+) этот запрос выбрал всех закрытых абонентов, посмотрел у них договора есть, но ничего не открыть, они закрыты
|
|||
50
Лоботряс
15.08.12
✎
10:27
|
Что значит закрыты/открыты? Выражайся яснее, пожалуйста
|
|||
51
LivingStar
15.08.12
✎
10:44
|
(50) особенности конфигурации, я не совсем в неё вник, с этими абонентами вообще не работал
то есть это те которые закрыты, типа вообще заморожены!!! с которыми более не идет работа их выбирает этот запрос но есть те у которых просрочены договора с родителем реквизита услуга ВДГО у которых они не заключены с ВДГО вообще, то есть заключены на других родителей услуг у которых бессрочные договора ВДГО без даты окончания и у абонента может быть несколько видов договоров, ВОТ) |
|||
52
Лоботряс
15.08.12
✎
11:06
|
Блин, как же с тобой сложно. Т.е. тебе нужно отобрать абонентов у которых: 1) есть договор, и он по услугам принадлежит группе "ВДГО" И (просрочен или дата окончания не заполнена). 2) абонентов у которых нет никаких договоров 3) абонентов, у которых есть договор и он по услугам принадлежит другим группам
Исправь мой текст если что то неправильно... |
|||
53
LivingStar
15.08.12
✎
11:17
|
(52) дата окончания если не заполнена то он бессрочный, такого абонента не должно быть в выборке,
Хорошо!!! Спасибо, я попробую править, пока на другой задаче... |
|||
54
Светлый Гений
15.08.12
✎
12:59
|
(32)А какого фига у меня тогда такой код не работает?
|
|||
55
LivingStar
15.08.12
✎
13:01
|
(54) какой такой?
|
|||
56
LivingStar
15.08.12
✎
13:02
|
(54) может дело в конфигурации?!
|
|||
57
Лоботряс
15.08.12
✎
13:02
|
(54) очень старый релиз восьмерки
|
|||
58
Светлый Гений
15.08.12
✎
14:37
|
(57) ну да, на 8.1 пробовал )))
|
|||
59
viktor_vv
15.08.12
✎
15:01
|
У меня такое чувство, что надо было скобки поставить, так как у NOT приоритет вычисления выше чем, даже у AND, а у В думаю еще ниже.
НЕ (Договоры.Владелец В (ВТ_ДействующиеДоговора.Владелец) ) |
|||
60
viktor_vv
15.08.12
✎
15:03
|
А без скобок сначала вычислилось (НЕ Договоры.Владелец), в результате скорее всего что-то булево получилось, а потом уже этот результат искался В ( выборка ).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |