gifts2017

Запрос. Нарастающий итог. Как «я» его понимаю.

Опубликовал Александр Шишкин (Шёпот теней) в раздел Программирование - Практика программирования

Известно, что запросы, простым способом не позволяют нумеровать строки и создавать нарастающие итоги. В запросах это возможно сделать только при соединении таблицы с самой собой достаточно хитрым способом, определенным образом упорядочивая, группируя и в соединения указывать неравенство.

Будет полезна изучающим запросы...

Ссылки при написании:

 

  1. http://www.gilev.ru/1c/81/index/optimquery.htm
  2. http://infostart.ru/public/58966/
  3. http://infostart.ru/public/61295/
  4. http://www.forum.mista.ru/topic.php?id=184893
  5. http://www.kb.mista.ru/article.php?id=703
  6.  http://infostart.ru/public/21085/ 

 

Данная обработка показывает по шагам как нужно создавать в запросе нарастающий итог. В обработке реализовано два примера.

 

Первый пример.

Нумерация строк в запросе как яркий пример нарастающего итога. В качестве колонки_выбора выбран «код».

 

Второй пример.

Реализован нарастающий итог по колонке «сумма документа». В качестве колонки_выбора выбран «номер».

 

Примечание1. Во всех примерах в условиях отбора в запросе используется «пометка на удаление».

 

Последовательность действия при получении в запросе "НарастающихИтогов".

 

Перед написание запроса необходимо определить колонку по которой хотим получить нарастающий итог.

Если мы хотим получить нумерацию строк в результате запроса то выибирать можно любую колонку.

По выбранной_колонке будем сортировать, соединять и использовать при группировки в нашем итоговом запросе.

 

Шаг1. Составляем запрос в который должны попасть то что мы хотим видеть.

Шаг2. Дополнем наш запрос из Шаг1. его точной копией.

Шаг3. Соединяем таблицу и таблицу_копию по выбранной_колонке и по ней же упорядочиваем.

Шаг4. Группируем наш запрос так чтобы в суммируемые колонки попала выбранная_колонка

Шаг5. Меняем условие соединения таблиц на больше_равно

 

 

Готово. Смотрим результат. Вот.

 

Примечание2. Последовательность «шагов» может быть любая. Так данное описание составление запросов с нарастающим итогом условное.

 

Примечание3. Быстродействие данных запросов ресурсоемко. Для большинства повседневных задач их использование вполне приемлемо.


… ВОТ …

 

с Уважением  "Шёпот теней" - ИнфоСтарт - infostart.ru - http://infostart.ru/profile/15616/

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.epf 94,28Kb
27.11.09
277
.epf 94,28Kb 277 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Игорь <...> (I_G_O_R) 27.11.09 13:44
насмешил :D , какая следующая статья будет "... как его понимаю" :?:
2. дед Мазай (Mazaloff) 27.11.09 14:25
а ослик на картинке причем?
3. Александр Медведев (anig99) 27.11.09 14:46
гыы...все ссылки уже помечены как прочтенные (:
Шепот, на самом деле показан очень конкретный пример... Вместо больше равно может быть и меньше равно... в зависимости от целей...
Но для тех кто изучает сложное на примерах (как я например (% ) зер гуд...

Я очень рад, что моя статья вызвала-таки наконец ряд статей по теме.
А то если что и есть в инете, то только основы. Мне пришлось очень долго копаться прежде чем нашел упоминание об ограничении нарастающих итогов в запросах - большие объемы данных начинают существенно тормозить.
А уж метод обхода этого ограничения - это был вообще алес... ограничить выборку...


З.Ы. Предлагаю название изменить... Двухпальцевые нарастающие итоги и нумерация строк в запросе... Всё-таки если быть последовательным и логичным, то "понимаешь" ты в статьях, а вот обработки у тебя "двухпальцевые". Это без иронии.
4. Александр Медведев (anig99) 27.11.09 14:53
(2) а ослик, потому что "душераздирающее зрелище" эти нарастающие итоги в запросе....
5. Александр Шишкин (Шёпот теней) 27.11.09 15:31


... БОЛЬШОЕ видится на расстоянии, а начинается с МАЛОГО …


... если ВЫ умеете делать это в МАЛОМ то сделаете это и в БОЛЬШОМ ...


...
п.с.
Около ста пятидесяти лет назад возникла новая область научного знания - учение о подобии явлений.
Гениальное предвидение этой науки было высказано Ньютоном в 1686 г. Но только в 1848 г. Член французской академии наук Жозеф Бертран впервые установил основное свойство подобных явлений, сформулировав первую теорему подобия, теорему о существовании инвариантов подобия.
Подобными называются явления, происходящие в геометрически подобных системах, если у них во всех сходственных точках отношения одноимённых величин есть постоянные числа.

... писать "нарастающие итоги" - это доставать кость попавшую в горло через задний проход ...

... при помощи простого Запроса+ТаблицаЗначений = Результат любой сложности ... эффективнее и проще и предсказуемо ...

... ВОТ ...
Арчибальд; +1 Ответить 1
6. Александр Медведев (anig99) 27.11.09 16:43
(5) хранение информации в текстовом виде намного проще и предсказуемо.
Уже было говорено, что абсолютно эффективных решений не бывает.
7. Игорь Исхаков (Ish_2) 27.11.09 17:02
(6), (1) Шепот прав в одном - что опубликовал свое мнение по поводу нарастающих итогов.
Правда в том , что подавляющее(подчеркиваю , подавляющее) большинство пользователей ИС не знают , не умеют использовать запросы.
Шепот схватил это - и молодец !

Весь вопрос в том , как лучше подать материал о элементарном и с примерами и иллюстрациями :
"Запросы ... как я их понимаю" или проще "Чайник - для чайников"
где просто и доступно было объяснено "на пальцах" ( а кого стесняться?):

1. Внутреннее соединение
2. Полное соединение
3. Левое...
4. Правое..

5. Соединение по неравенству+ Нарастающие итоги.+ соединение по двойному неравенству и т.д.

6. Сумма с условием , Оператор Выбор и т.д.

Т.е. на мой взгляд полезен будет целый цикл статей . Шепот - молодец !

Что касается самой обработки - я её пока не смотрел. Но посмотрю обязательно.
8. Александр Шишкин (Шёпот теней) 27.11.09 17:10
...хм...

... итоговая сложность расчёта результата не должна быть выше самой максимально простой операции используемой при вычислении этого результата ...


... вопрос знатокам "нарастающих итогов":

например, требуется вычислить 2*3 = ...

как ВЫ ? думаете ? как компьютер получит результат ... ?

... вооот ...
9. Игорь Исхаков (Ish_2) 27.11.09 17:25
Продолжаю. Теперь о недостатках.

Считаю недостатком отсуствие иллюстраций - рисунков.
Две Простенькие таблички - и стрелками показано какая строка из первой талицы соединяется со строками из второй таблицы. И тогда вся суть соединения по неравенству была понятна даже непосвященному.

Считаю недостатком отсуствие текстов запросов в самой статье.
Текст должен быть на рисунке и разбит на секции :
Поля выборки, условия соединения и т.д.

Т.е. такие статьи для начинающих нужно делать максимально подробными и иллюстрированными.

Перечисленные шаги 1-5 мало ,что дают непосвященному.

Т.е. если бы я был изучающим, я бы твоей статьей не заинтересовался.
Надеюсь след. статья о запросах будет подробной и иллюстрированной.
Давай , Шепот ! Жми !
10. Игорь Исхаков (Ish_2) 27.11.09 17:37
(8) Шепот , ты не увиливай.
Давай обсудим текст твоих запросов. Чуть позже.
11. Александр Шишкин (Шёпот теней) 27.11.09 17:54
Ish_2 ...

декларативный язык запросов - один из самых "дурацких" языков программирования ...

придумывался как "для всех" - оказался для "посвщЁнных" ...

объснить его работу, словами, по-этапно - не возможно ... в лучшем случае картинками ... т.к. построение запросов это не язык "логики" а язык "желания" ...

.. увиливаешь обычно ТЫ ... ответь на (8) ...
12. Игорь Исхаков (Ish_2) 27.11.09 20:16
объснить его работу, словами, по-этапно - не возможно ... в лучшем случае картинками ... т.к. построение запросов это не язык "логики" а язык "желания" ...


Так ведь в корень смотришь !
Именно так и нужно : диаграммки и картинки.
Я ж тебя подбиваю...

декларативный язык запросов - один из самых "дурацких" языков программирования ...

придумывался как "для всех" - оказался для "посвщЁнных" ...


не вижу темы для обсуждения.

.. увиливаешь обычно ТЫ ... ответь на (8) ...


Шепот я пришел к тебе в тему . По-честному.
Обсуждаю ТОЛЬКО содержание ТВОЕЙ статьи.
Тема : Запросы.

Ты же меня хочешь затащить в обсуждение некорректных или допускающих бесконечно много толкований рассуждений.
Не-а. Не затащишь.
Только текст ТВОЕЙ статьи. Только текст ТВОИХ запросов.
Обработку не скачал . Скачаю дома .
Угрожаю : долбить буду по -взрослому.
13. Александр Шишкин (Шёпот теней) 27.11.09 21:43
Ish_2 ... ты меня удивляешь ...

1. по взрослому мне бы хотелось в твоих статьях ...
2. я же уже высказался по поводу нарастающих итогов в запросах -в серьёз это обсуждать можно только в философских поисках о границах языка запросов но не для практики ... или приведи примеры ...
3. именно поэтому и придумали "новые" костыли в виде - СКД ... соединив запрос и ТЗ ...
4. рисовать рисунки и чертить схемы на такие примеры - уж совсем дело последнее ...
5. понимание в запросах приходит только через "ручки", в основном ...

... вот ...

всЁ таки, мне гораздо интереснее (8) ...

... вотТАКмнеОЧЕНЬкажется ...
14. Игорь Исхаков (Ish_2) 28.11.09 13:51
Долбежка откладывается. К сожалению.

1. Страраюсь.

2. Статья Anig99 как раз и переводит фил.вопос о границах использования языка запросов в практический вопрос : Как правильно использовать язык запросов для вычисления нарастающих итогов ? Именно в ней и говорится о том, что "в лоб" применять запрос для таких вычислений не стоит.
Нужно применять вычисление нарастающих итогов для небольших таблиц.
Как последовательно получать эти небольшие таблицы сказано сначала у Anig99 , потом у меня.
Шепот , ты этого просто не понял.

3. Нет . Шепот, СКД придумали совсем не для этого. И проблему трудного вычисления нарастающих итогов СКД НЕ РЕШАЕТ.

4. Жаль
5. Согласен.

6. Не заманишь, хитрец...
15. Александр Шишкин (Шёпот теней) 28.11.09 15:02
(14)

1. посмотрим "болтунишка" ... увидим "болтунишка" ...
2. нет конкретных примеров - говорить не о чЕм ... кому нужны ЭТИ неБОЛЬШИЕ таблицы ... то у вас 200 гигов а то НЕбольшие таблицы ... бегаете по кругу "батенька"-ссс ... да-ссс ... по-кругу-ссс ...
3. ну... ну... а для чего ТОГДА придумали ЭТИновомодныеКОСТЫЛИ .. ???
4. левизна ... детский вопрос ... без абстракций нет программиста ...
5. нууу... нЕужели ... ??? ... может ещЁ подумаешь ...
6. жаль ... фундаментальный вопрос всех вычислений ... кстати это и к п3. относится ...

... вОООттакиеСубботнииПрения ... ))) ...
16. Игорь Исхаков (Ish_2) 28.11.09 15:34
(15)
1. Ага.
2. Прочитай статью Anig99 там есть ссылка на реальный отчет который работает в конкретной базе 120Гб.
3. В частности. СКД позволяет делать то , что не позволяет делать постоитель отчета - произвольное группирование колонок отчета, произвольное количество таких группировок.
Пример : В БП 1.6 есть отчет "Обороты счета" и сделан он "вручную" с тяжкими преобразованиями. В СКД такой отчет делается гораздо проще.
СКД - не костыли , а требование времени.
4. Умничаешь ?
5. Умничаешь ?
6. фундаментальные вопросы так не формулируются.
Впрочем , ты же у нас бравируешь отрицанием важности формы, тебе же главное -содержание. Про единство формы и содержания мы поговорим в другой раз.
17. Александр Шишкин (Шёпот теней) 28.11.09 15:52
(16)

1. ... слова ... слова ... слова ... как много в них НЕ сделанного ...
2. ... нууу ... онанизм - пусть даже и цифровой то же кому-то приятен ...
3. любая ТЗ позволяет группировать - и вдоль - и поперЁк - и "о-боже" даже по-диогонали ...
4. нет ...
5. ага ...
6. чем фундаментальнее вопрос - тем ОН проще ... например, почему Земля крутится ? ...

п.с. НЕсогласен.
... я говорю о единстве, о гармонии - "формы" и "содержания" ... вот ...
18. Игорь Исхаков (Ish_2) 28.11.09 16:06
1...
2....
3. Шепот , СКД надо изучить.
4. Да.
5. То-то.
6. Твоя статья - про запросы.

P.S. Ну вот и хорошо.
19. Александр Шишкин (Шёпот теней) 28.11.09 16:25
(18)

3. ну... ну, да ... да ... "я эту книгу не читал но по поводу её содержания могу сообщить следующее ... " ...
4. уломал ...
5. ага ...
6. ??? ... моя статья - срубить "плюс"-ов по лЁгкому ...

... но, как видишь ... "нарастающие итоги" нафигникомуненужны ... ))) ...
20. Игорь Исхаков (Ish_2) 28.11.09 17:05
Ты просто не умеешь их готовить.
21. Александр Шишкин (Шёпот теней) 28.11.09 20:45
(20) .. нууу конечно же ... кто жжжеее спорит ....

назвать надо было типа:

1. Пять шагов постижения ...
2. Запросы и нарастающие итоги ...
3. Метдика решения нарастающих итогов в запросах ...
...

.. ну и ещё всякой були-були поднаписать ... и обязательно указать много-много ГБайт, жути нагнать рисунками и графиками ... и обязательно должны быть непонятные слова типа "глбоко-детальный анализ показывает", "после использования ограничения выборки в таблицах", " скорость получения таблиц результатов при использовании данного метода увеличена в 4-5 раз", привести кучу таблиц с замерами ...

... ага ... ага ...

22. larissa builova (larisab) 28.11.09 21:10
(21) Кухню свою раскрываешь ;)
(19) По легому срубить не получается, как видишь. :)
23. Артур Аюханов (artbear) 30.11.09 13:58
(0) Слабовато, для начинающих этого мало :(
Минусую
24. K Anna (annak2980) 01.12.09 22:21
Простой вопрос: на какую категорию пользователей ИС ориентирована сия статья?
Профессионалы, как видно из комментариев, в подобной информации не нуждаются, а у новичка (1 скачивание в день) в силу сумбурности описания желание скачать отпадает.
25. Александр Шишкин (Шёпот теней) 01.12.09 22:49
(24) ... хм ...

вопрос: "на какую категорию пользователей ИС ориентирована сия статья? "


ответ1.
... явно для вас ...

ответ2.
... явно не для них...

ответ3.
... ну ни шмог, ни шмог "я" ...

ответ4.
... затрудняюсь ответить ...

ответ5.
... другое ...

п.с. выберите ответ который вам подойдЁт ...

... вотРиторическийОтветнаНеМенееРиторическийВопрос ...
26. Александр Медведев (anig99) 01.12.09 23:31
(24)(25) И тем, и тем это интересно.
Новичкам - как сделать. Опытным - а на фуа это собственно надо.
Шёпот теней; +1 Ответить 3
27. Александр Шишкин (Шёпот теней) 01.12.09 23:53
(26) ... зАстрелил ... ))) ... (: ...
28. Ivon (Ivon) 02.12.09 09:41
Занимательно, но очень долго отрабатывает. Для программиста - не оптимизировано. Для пользователя - быстрее вставить результат отчета в Ексель и там пронумеровать строки. Полностью согласен с (26).
29. Александр Шишкин (Шёпот теней) 02.12.09 10:11
(28) ... уписаться можно ... ииии с чем ВЫ собственно согласны в (26) и почему ? ...

...рекомендую посетить ветки товарищей: anig99, Ich_2, I_G_O_R по теме запросов ... там есть и мои комментарии по поводу и нарастающих итогов в том числе ...

... вопрос не в том что долго или быстро ... вопрос можно или нельзя ... и зачем это нужно ... ???
ответ: - можно НО не нужно ...

... вообщем за что боролся на то и напоролся ... ))) ... это о себе ...

... нуууу тогда бы и оптимизировали бы заодно ужжжж ... и нам бы показали ...
... нуууу или свой "нарастающий итог" напишите .... нам покажите ...

... вот ...
30. Ivon (Ivon) 02.12.09 10:41
(29)
Новичкам - как сделать. Опытным - а на фуа это собственно надо.

Вот с этим согласен. Я не говорил, что статья никому не нужна и абсолютно бесполезна и не говорил, что нельзя, потому что долго. Для каждой задачи есть своя реализация, зависящая от необходимого результата. Можно - и это хорошо, но в данном случае каждый уже выберет НУЖНО это ему или нет. Вы проделали работу и показали результат и как его добиться. Я всего лишь высказал свое мнение по поводу нюансов при выполнении такого запроса.
Шёпот теней; +1 Ответить 1
31. Александр Шишкин (Шёпот теней) 02.12.09 10:44
(30) ... принято .. спасибо ... вот ...
32. Михаил Ильин (ILM3) 03.12.09 07:59
Сломайте пожалуйста кнопку с точкой у Шёпота теней. Пожалуйста!
Или пусть Dushelov напишите ему драйвер клавиатуры, который будет троекратные нажатия кнопки "точка" заменять на однократное нажатие.

Я не понимаю зачем нужно писать так коментарии:
... бла-бла ... бла-бла ...
... бла-бла ... бла-бла ...
... бла-бла ... бла-бла ...
... ВОТ!!! ...

Учитесь уважать своих читателей.
Спасибо за внимание.


33. Александр Медведев (anig99) 03.12.09 08:44
(32) тут многие пытались...даже банить хотели. Только смысл? Уж лучше он так пишет, чем матом ругается или имена коверкает.
34. Александр Шишкин (Шёпот теней) 03.12.09 14:59
(32) ... у всЕх свОи тАрАкАны ... простите ужжж и Вы мои ... вОт ...
35. Игорь Исхаков (Ish_2) 03.12.09 19:59
Планка до оскорбления невысока :
Уж лучше он так пишет, чем матом ругается или имена коверкает.


Ты, Шепот , на провокации в (32),(33) не поддавайся. Гни свою линию.
Поверь , стоит тебе дрогнуть и связать хоть раз обрывки мыслей в связное предложение - тебе конец ! ЗАМОРДУЮТ .
..требованиями писать всегда нормально.
36. Александр Медведев (anig99) 03.12.09 22:07
37. Михаил Ражиков (tango) 04.12.09 09:15
38. vlad kan (truba) 25.03.10 18:18
... Через четверть года идея пригодилась в одном интересном решении, спасибо.
39. aga_aga (Збянтэжаны Саўка) 22.04.10 14:54
Обобщение по шагам - это всегда результат большой предварительной работы на практике.
Люблю я такие обобщения вначале документов, ибо сразу видны трудозатраты и естественно повышается ценность и желание поглубже вникнуть в смысл статьи особенно для новичка который пока не ориентируется в мире 1С.
Прошепчу спасибо, чтобы не нарушить покой теней Ж)
40. Александр Шишкин (Шёпот теней) 22.04.10 15:38
(39) ... очень рад если каким-то образом помогло ... вот ...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа