|
как в запросе поставить условие аналогичное условию ГДЕ? | ☑ | ||
---|---|---|---|---|
0
FiftyStars
21.12.11
✎
23:09
|
Вобщем помню смотрел Чистова давно, там увидел как он в запросе ставит условие. А сейчас этих видео у меня нет.
Вобщем логика такая:если условие ГДЕ отрабатывает по окончании формирования всех результатов, то условие, поставленное им отсеивает неподходящие значения ПРИ формировании оных. К примеру: ВЫБРАТЬ Сотрудники.фамилия ИЗ Справочник.Сотрудники Если поставить условие ГДЕ Сотрудники.фамилия=&Парам, ну и допустим Парам=Петров, то вначале формируется полный список сотрудников(Петровы, сидоровы, ивановы и т.д.), а затем отбрасываются все кроме петровых. Для моей задачи это долго будет. А там условие ставилось вроде в скобках, не помню в ВЫБРАТЬ или в ИЗ...но с этим условием результат сразу добавляло только Петровых. Вобщем стыдно мне, что помню суть акак именно делать не помню, но с запросами давно не работал =) |
|||
1
GROOVY
21.12.11
✎
23:11
|
Это Вы с параметрами вирт. Таблиц путаете. У справочников их нет.
Видео кстати доступно на chistov.spb.ru |
|||
2
Живой Ископаемый
21.12.11
✎
23:12
|
суть та что это применяется к параметрам ВИРТУАЛЬНЫХ таблиц
|
|||
3
Maxus43
21.12.11
✎
23:20
|
но в итоге всё зависит от плана запроса, для файлов может и справедливо (0), а на СУБД не факт что так поведёт себя запрос
|
|||
4
H A D G E H O G s
21.12.11
✎
23:22
|
<<Если поставить условие ГДЕ Сотрудники.фамилия=&Парам, ну и допустим Парам=Петров, то вначале формируется полный список сотрудников(Петровы, сидоровы, ивановы и т.д.), а затем отбрасываются все кроме петровых.>>
Кто такое сказал? |
|||
5
H A D G E H O G s
21.12.11
✎
23:23
|
<<Для моей задачи это долго будет.>>
Задача по расчету Фобос-Грунта? Че там, миллион сотрудников штоле? |
|||
6
Neco
21.12.11
✎
23:26
|
Если реквизит проиндексировать то СУБД будет искать значение в индексе и потом делать выборку.
|
|||
7
Maxus43
21.12.11
✎
23:27
|
ГДЕ Сотрудники.фамилия=&Парам - если действительно так сделать - может и долго, ибо не ссылочный тип будет проверяться, и на него нет индексов в субд. В реляционных базах данных индексы играют одну из ключевых ролей для выборки данных
|
|||
8
H A D G E H O G s
21.12.11
✎
23:28
|
(6) Если записей больше 600 вроде (для ms sql 2005). Вопрос - есть ли столько сотрудников у аутора?
|
|||
9
H A D G E H O G s
21.12.11
✎
23:28
|
(7) goto (8)
|
|||
10
Maxus43
21.12.11
✎
23:29
|
(9) метки - ЗЛО :)
|
|||
11
H A D G E H O G s
21.12.11
✎
23:29
|
Окститесь, человеки.
Справочник сотрудников! Че там, запрос в цикле тока, но за это бить надо. |
|||
12
Maxus43
21.12.11
✎
23:31
|
(11) ну у мну сотрудников 3 тыщи было. суть не в том есть ли у автора столько, он вопрос про тайный смысл вирт таблиц и условий ГДЕ задал. мы филосовствуем...
|
|||
13
FiftyStars
21.12.11
✎
23:33
|
(4) почитай про порядок выполнения запроса
(HADGEHOG) про сотрудников это пример был и видимо не очень хороший...думал сойдет... а по вирт таблицам синтаксис подскажите пожалуйста че то всю справку перерыл...справка в 1с полное УГ...то что надо - не найти, зато потом когда будешь искать другие вещи, на глаза попадается то что искал в прошлый раз |
|||
14
Maxus43
21.12.11
✎
23:35
|
(13) вирт таблицы только у регистров есть, у каждого свои. в конструкторе они отдельными таблицами идут. например регистр ТоварыНаСкладах, есть вирт таблица ТоварыНаскладахОбороты, у неё можно параметры задавать
|
|||
15
FiftyStars
21.12.11
✎
23:36
|
насчет порядка я ж не из пальца высосал...
даже если отбросить кто что слышал то тупо логически можно допереть...выполнение запроса происходит поэтапно "изнутри" "наружу" и сверху вниз |
|||
16
H A D G E H O G s
21.12.11
✎
23:38
|
||||
17
Maxus43
21.12.11
✎
23:40
|
(15) зависит от конкретной ситуации и плана запроса который внутри формируется. Нас так же в УЦ учили в своё время, но в реальных условиях это оказалось не совсем так.
Например внешне один и тот же запрос на СУБД преобразуется в несколько вариаций, если оптимизатор запросов решит что данных много - пойдёт один, если нет - другой. |
|||
18
Maxus43
21.12.11
✎
23:43
|
короче нафиг эти тонкие материи, просто следуй рекомендациям с того же ИТС, есть статья про оптимизацию запросов
|
|||
19
H A D G E H O G s
21.12.11
✎
23:44
|
(14) Херовато.
Примитивно: Для Остаточных таблиц вирт. таблица Остатки() - это физическая (хранимая в базе данных sql) таблица итогов на начало месяца + движуха с начала месяца по заданное число. Чтобы sql не выбирал все Итоги и всю движуху и суммировал, а потом уже фильтровал в ГДЕ, юзаются параметры ВТ, при которых он отберет только нужные Итоги (по заданной номенклатуре) и нужную движуху. |
|||
20
H A D G E H O G s
21.12.11
✎
23:45
|
(19) Я примитивно объяснил, я в курсе про Итоги на 3999 год и минусовку, а то заклюете.
|
|||
21
FiftyStars
21.12.11
✎
23:45
|
(14) ну приблизительный синтаксис напиши уже=)))PLEASEEE
не помню я =)а скорость инета там где я ща сижу не позволит видео чистова скачать быстрее чем за &ПараметрОченьДохренаВремени =)тем более это в какой то из частей с 6 по 13 не помню, так что оченьдохренавремени умножаем на 8 и это будет вечность уже, я состарюсь и умру пока оно скачается :D (16) что это за ересь=))) |
|||
22
H A D G E H O G s
21.12.11
✎
23:46
|
Ну а для РС виртуальная таблица - это почти аналог вот этого
Книга знаний: Срез последних на каждую дату в запросе |
|||
23
FiftyStars
21.12.11
✎
23:47
|
(18) не все так просто, дамы и господа :D
после предыдущего работничка смотреть больше негде :DD |
|||
24
Maxus43
21.12.11
✎
23:48
|
(19) ясен фиг херовато, я всю теорию должен был издложить когда у автора один вопрос простой?)
|
|||
25
H A D G E H O G s
21.12.11
✎
23:48
|
(21)
<<(16) что это за ересь=)))>> А может ну его, этот 1С с докучи программированием, если такие умные? Вон, в аэрокосмосе бида-пичаль, Фобосы строем не ходють, айда туды? |
|||
26
Maxus43
21.12.11
✎
23:48
|
(23) прошлый работник спёр ИТС? воистину жадны 1сники
|
|||
27
H A D G E H O G s
21.12.11
✎
23:49
|
(24) Он же полез во "внутрь-снаружи" и "вверх - вниз"; ясно же, теории хочет.
|
|||
28
FiftyStars
21.12.11
✎
23:49
|
(25) я только за ="D но я лучше стану кубинским наркобароном=) ну или мексиканским =DD
|
|||
29
FiftyStars
21.12.11
✎
23:53
|
(26) ну книжкой судяя по ее состоянию он зад свой подтирал....пол книги осталось всего :DD
диск еще был....но он теперь стал горшком для цветка на подоконнике :DD |
|||
30
Maxus43
21.12.11
✎
23:55
|
короче есть простые правила описаные на ИТС, если их придерживаться - то не будут плевать тебе в воображаемое лицо когда будут смотреть твой код.
Пользуй конструктор запросов, он за тебя синтаксис напишет, потом посмотриш... смотри типовые запросы как написаны, в большинстве своём грамотно, исключая ситуации запросов в цикле (увы и ах, даже 1с не следует своим рекомендациям) |
|||
31
H A D G E H O G s
21.12.11
✎
23:56
|
(30)
исключая ситуации запросов в цикле (увы и ах, иногда этого не миновать) |
|||
32
Maxus43
21.12.11
✎
23:57
|
(31) кстати смотрел в УПП несколько таких запросов, в некоторых не миновать, но 1-2 точно со зла они так, можно было переписать
|
|||
33
ПесняПроЗайцев
21.12.11
✎
23:59
|
(0) Мне не стыдно за вас, 1-ники. Кем начал - тем и помре )
|
|||
34
FiftyStars
22.12.11
✎
00:01
|
(30) Че то я голый запрос в 1С понимаю лучше чем конструктор...для меня это как лего с квадратными выпуклостями и круглыми впуклостями:D
|
|||
35
Maxus43
22.12.11
✎
00:04
|
(34) незнаю, многостраничные запросы ЗУПа вобще мало кто без конструктора поймёт :)
он на самом деле полезен, понять и приобщиться надо... а когда читаеш запросы самоделкиных без переносов строк да ещё и на англицком - хочется материться, выть на луну и бежать за водкой |
|||
36
rs_trade
22.12.11
✎
00:07
|
в сотый раз могу посоветовать прочитать книги по ms sql. с уверенностью могу сказать что, тот кто изучал язык запросов по книгам 1С, нихрена язык запросов не знает.
|
|||
37
FiftyStars
22.12.11
✎
00:15
|
(33)(35)(36) какие мои годы=) я не так давно 1С занялся и еще только учусь, каждый день сталкиваюсь с трудностями но решаю ведь их, а работать по течению 1С помогает нормальное знание других языков программирования, во всяком случае принципы одни=)
+мне английский даже удобнее=) я когда общий курс ЭсКуЭль проходил придраконился к нему чутка=)да и вобще с английским порядок)вот имена таблиц на транслите это задница)) |
|||
38
FiftyStars
22.12.11
✎
00:36
|
Кстати дополнительный вопрос:
Можно ли замутить такую же вещь но со справочниками/документами? У меня ДОПУСТИМ 100 000 000 заказов, и только на 1 нужно достать номер счета, номер реализации, номер закрытия и еще всякой лобуды кучу. Чую что все эти соединения нехорошо скажутся на скорости при таком количестве записей. Или лучше сделать вложенный запрос, который достанет только тот заказ а к нему прикреплять всё остальное? |
|||
39
Maxus43
22.12.11
✎
08:52
|
соединение с вложеным запросом ещё большее зло. делай Врем таблицу и к ней соединяй
|
|||
40
Maxus43
22.12.11
✎
08:54
|
с вложеными запросами СУБД может не правильно определить более оптимальный план, что приведёт к тормозам. да ещё и соединение с ним...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |