|
Запросы, Запросики | ☑ | ||
---|---|---|---|---|
0
Mad88
24.10.17
✎
13:49
|
Добрый день господа, есть такой запрос
ВЫБРАТЬ АвтомобилиСрезПоследних.Автомобиль КАК Автомобиль, АвтомобилиСрезПоследних.ВидЗначения, АвтомобилиСрезПоследних.Автомобиль.Модель КАК Модель, АвтомобилиСрезПоследних.Автомобиль.Марка КАК Марка, ВЫБОР КОГДА АвтомобилиСрезПоследних.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.ГосНомер) ТОГДА АвтомобилиСрезПоследних.Значение КОНЕЦ КАК ГосНомер, ВЫБОР КОГДА АвтомобилиСрезПоследних.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) ТОГДА АвтомобилиСрезПоследних.Значение КОНЕЦ КАК Хозяин, АвтомобилиСрезПоследних.Значение.ФормаСобственности КАК ХозяинВидКонтрагента, АвтомобилиСрезПоследних.Значение.ОплатаЗачетами КАК ХозяинОплатаЗачетами, АвтомобилиСрезПоследних.Значение.ОсновнойТелефон КАК ОсновнойТелефон ИЗ РегистрСведений.Автомобили.СрезПоследних( &Период, ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) ИЛИ ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.ГосНомер)) КАК АвтомобилиСрезПоследних ГДЕ АвтомобилиСрезПоследних.Автомобиль = &Автомобиль В итоге запрос выдает 2 результата, что в принципе логично https://yadi.sk/i/v9aMlazY3P3eC5 То есть в первой строчке у нас выбирается Хозяин, во второй пробег, можно ли как то преобразовать запрос так что бы эти две записи обединялись в одну. |
|||
1
Dmitry1c
24.10.17
✎
13:50
|
Хозяин
|
|||
2
catena
24.10.17
✎
13:51
|
Зависит от того, что вы вкладываете в "обединялись в одну"
|
|||
3
Mad88
24.10.17
✎
13:52
|
(2) Что бы пробег встал в первую сточку, а не выбирался отдельным результатом
|
|||
4
DrShad
24.10.17
✎
13:52
|
ОБЪЕДИНИТЬ
|
|||
5
Mad88
24.10.17
✎
13:52
|
(1) с этим к Рарусу =)
|
|||
6
DrShad
24.10.17
✎
13:52
|
(3) это не отдельный результат, а две строки выборки по одному результату
|
|||
7
FIXXXL
24.10.17
✎
13:52
|
(0)
разнеси на два запроса и (4) |
|||
8
Mad88
24.10.17
✎
13:53
|
(4) Не, объединять нельзя, регистр большой, формироваться будет очень долго, неприемлемо долго...
|
|||
9
DrShad
24.10.17
✎
13:53
|
(8) не дольше чем в твоем варианте
|
|||
10
e053nk
24.10.17
✎
13:54
|
Сначала выбрать авто, потом левый соедиением присоедить что нужно-так не пойдет?
|
|||
11
Buster007
24.10.17
✎
13:55
|
берешь автомобиль и присоединяешь к нему твой регистр с каждым из свойств
|
|||
12
Buster007
24.10.17
✎
13:56
|
+(11) сколько свойств столько соединений
|
|||
13
FIXXXL
24.10.17
✎
13:58
|
(8) результат сунь в временную таблицу, из нее выбирай два раза и объединяй
|
|||
14
novichok79
24.10.17
✎
14:01
|
1) автомобиль разве не измерение? зачем ты его в где пихаешь?
2) зачем 2 раза или если можно В 3) пихай результат во временную таблицу а потом цепляй левым соединением к автомобилю, это если надо обязательно 1 строку получить со свойствами авто. |
|||
15
Йохохо
24.10.17
✎
14:04
|
а чего просто максимум не поставить?
|
|||
16
Mad88
24.10.17
✎
14:07
|
(9) В рабочем варианте отбора по автомобилю быть не должно, если сделать объединение, то отрабатывает очень долго
|
|||
17
Mad88
24.10.17
✎
14:10
|
(14) Здесь автомобиль в где, только для примера, вообще автомобиля в условии не будет
|
|||
18
Михаил Козлов
24.10.17
✎
14:14
|
Чем (15) не подходит с группировкой по автомобилю, убрав из полей ВидЗначения?
|
|||
19
Йохохо
24.10.17
✎
14:16
|
+ навесив выборы на последние поля, которые вероятно не актуальны для госномер
|
|||
20
Mad88
24.10.17
✎
14:20
|
(18) дак Поля Номер и Хозяин то разные будут, как он их сгруппирует?
|
|||
21
Михаил Козлов
24.10.17
✎
14:21
|
(2) МАКСИМУМ
|
|||
22
novichok79
24.10.17
✎
14:35
|
ВЫБРАТЬ
АвтомобилиСрезПоследних.Автомобиль КАК Автомобиль, АвтомобилиСрезПоследних.ВидЗначения КАК ВидЗначения, АвтомобилиСрезПоследних.Значение КАК Значение Поместить ДанныеМоихТачек ИЗ РегистрСведений.Автомобили.СрезПоследних( &Период, ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) ИЛИ ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.ГосНомер)) КАК АвтомобилиСрезПоследних; ВЫБРАТЬ ДанныеМоихТачек.Автомобиль КАК Автомобиль Поместить ВТТолькоБугатти ИЗ ДанныеМоихТачек КАК ДанныеМоихТачек СГруппировать ПО Бугатти.Автомобиль; ВЫБРАТЬ ТолькоБугатти.Автомобиль КАК Автомобиль, МАКСИМУМ(ЕСТЬNULL(ДанныеМоихТачекХозяин.Значение, значение(Справочник.ФизическиеЛица.ПустаяСсылка))) КАК Хозяин, МАКСИМУМ(ЕСТЬNULL(ДанныеМоихТачекГосНомер.Значение, "")) КАК ГосНомер ИЗ ВТТолькоБугатти КАК ТолькоБугатти ЛЕВОЕ СОЕДИНЕНИЕ ДанныеМоихТачек КАК ДанныеМоихТачекХозяин ПО ТолькоБугатти.Автомобиль = ДанныеМоихТачекХозяин.Автомобиль И ДанныеМоихТачекХозяин.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) ЛЕВОЕ СОЕДИНЕНИЕ ДанныеМоихТачек КАК ДанныеМоихТачекГосНомер ПО ТолькоБугатти.Автомобиль = ДанныеМоихТачекГосНомер.Автомобиль И ДанныеМоихТачекГосНомер.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) СГРУППИРОВАТЬ ПО ТолькоБугатти.Автомобиль |
|||
23
novichok79
24.10.17
✎
14:36
|
(22) я бы делал примерно так
|
|||
24
novichok79
24.10.17
✎
14:39
|
(23) ошибки не правлю, т. к. писал на коленке за 5 минут, чтобы автор понял идею.
|
|||
25
Mad88
24.10.17
✎
14:52
|
(24) Это все очень круто, но если мы обращаемся к регистру больше одного раза, все виснет, суть в том что бы сделать это при одном обращении к таблице(мне почему то кажется что это невозможно, но тут люди умнее меня вдруг что), в рабочем сценарии отбора по автомобилю не будет, записей много при таком варианте все будет висет, и отчет формироваться будет что-то около часа)
|
|||
26
novichok79
24.10.17
✎
14:56
|
(24) где тут обращаются к регистру 2 раза? один раз и все.
|
|||
27
dezss
24.10.17
✎
14:58
|
(25) блин, да ты свой результат запихни в вт, а потом соедини с самим собой и все...
|
|||
28
novichok79
24.10.17
✎
14:59
|
(25) да уж, ты настолько ленив, что даже не хочешь прочитать и осмыслить запрос. ну или ты троллишь всех тут просто.
|
|||
29
Mad88
24.10.17
✎
15:02
|
(27) и все, и запрос час формируется
|
|||
30
Mad88
24.10.17
✎
15:03
|
(28) я подобный запрос, запихав в консоль и запустил, думает уже 50 минут
|
|||
31
novichok79
24.10.17
✎
15:07
|
(30) покажи свой запрос для начала
|
|||
32
Mad88
24.10.17
✎
15:14
|
(31) Так то должно работать, походу сервак тупит
ВЫБРАТЬ АвтомобилиСрезПоследних.Автомобиль КАК Автомобиль, АвтомобилиСрезПоследних.ВидЗначения КАК ВидЗначения, АвтомобилиСрезПоследних.Значение КАК Значение ПОМЕСТИТЬ ДанныеМоихТачек ИЗ РегистрСведений.Автомобили.СрезПоследних( &Период, ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин) ИЛИ ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.ГосНомер)) КАК АвтомобилиСрезПоследних ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДанныеМоихТачек.Автомобиль КАК Автомобиль ПОМЕСТИТЬ ВТТолькоБугатти ИЗ ДанныеМоихТачек КАК ДанныеМоихТачек СГРУППИРОВАТЬ ПО ДанныеМоихТачек.Автомобиль ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТолькоБугатти.Автомобиль КАК Автомобиль, МАКСИМУМ(ЕСТЬNULL(ДанныеМоихТачекХозяин.Значение, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))) КАК Хозяин, МАКСИМУМ(ЕСТЬNULL(ДанныеМоихТачекГосНомер.Значение, "")) КАК ГосНомер ИЗ ВТТолькоБугатти КАК ТолькоБугатти ЛЕВОЕ СОЕДИНЕНИЕ ДанныеМоихТачек КАК ДанныеМоихТачекХозяин ПО ТолькоБугатти.Автомобиль = ДанныеМоихТачекХозяин.Автомобиль И (ДанныеМоихТачекХозяин.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин)) ЛЕВОЕ СОЕДИНЕНИЕ ДанныеМоихТачек КАК ДанныеМоихТачекГосНомер ПО ТолькоБугатти.Автомобиль = ДанныеМоихТачекГосНомер.Автомобиль И (ДанныеМоихТачекГосНомер.ВидЗначения = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.ГосНомер)) СГРУППИРОВАТЬ ПО ТолькоБугатти.Автомобиль |
|||
33
arsik
гуру
24.10.17
✎
15:35
|
(32) Группировать не обязательно в последнем запросе.
В первом запросе добавь индекс по автомобиль и вид значения, во втором по автомобиль. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |