Поиск странной информации
Я вообще-то сегодня собиралась рассказывать как разворачивать строки-группы в колонки таблицы, но про это отдельно.
В своё время на заводе наблюдала замечательное зрелище. Сидит человек в отчётный период. На столе компьютер, калькулятор и счёты. Он на всём на этом что-то очень быстро считает. На комментарий типа «Здорово смотритесь!» был ответ «А так удобнее». Вот и мне удобнее открыть в трёх окнах Excel, только что сделанную программу и оболочку SQL-сервера для выборки информации. Так ли важно как что было найдено. Важно, что при желании всё находится и сравнительно небольшими усилиями.
Возникло у меня сегодня утром желание сравнить суммы по экономическим статьям, проплаченные в районах с лицевых счетов учреждений. Точнее даже не суммы, а проценты этих сумм от всех расходов.
Странное это сильные отклонения в этой информации. Действительно, районы могут быть разные, но в них примерно одинаковые учреждения, выплачивающие зарплату, оплачивающие коммунальные платежи и прочее. Процентам расходов логично быть примерно одинаковыми.
Вот схема запроса:
Т.е берутся платёжки (ZF_R), к ним по ID документа (DocID) привязано список документов (позволяющий ограничиться документами только за 2017 год). К нему же прицеплен справочник экономических статьей (K_PS). И к нему же прицеплено учреждение – плательщик (K_UL_K_UL), но не само, а его распорядитель (потому что мне нужны суммы по районам). Название района берётся из K_UL по связи с полем ID распорядителя (K_ULID_PARENT).
Потому это всё разворачивается PIVOT-ом, полный текст которого тут:
https://drive.google.com/file/d/1h4cIGa2LfUMugYMeMqbho-eQVepIImKh/view?usp=sharing
Текст не развёрнутого списка такой:
Т.е выбираются (выражение WHERE) все у кого
1] год даты = 2017 (YEAR(dbo.DOC.DU_R) = 2017),
2] не приостановленные (IsDate(dbo.DOC.D_RETURN) = 0),
3] с типом документа - оплата с лицевого счета (dbo.DOC.K_TDID = 1537)
4] не возвраты (dbo.ZF_R.FLAGS<>9)
Выбралось у меня этим запросом всё, включая Комитеты, которые мне не нужны и загадочные колонки по экономическим статьям 120-180, т.е какие-то доходы а расходах. Это всё меня не интересовало, я эти строки просто удалила в Excel-е (в который я перекинула выборку через буфер:
Проценты я получала уже в Excel-е потому что там, по-моему, проще:
«ЗП», т.е зарплата это 211, 212, 213. Резкие отклонения можно статистическими функциями получать, но мне было лень. Я на диаграмме смотрела, отмечая жёлтым странное и удаляя очередной график чтобы изменить масштаб:
Следующий:
Так у меня вылез Курортный районо со странно большим процентом по экономической статье 340 «Увеличение стоимости материальных запасов».
Далее естественно посмотреть учреждения района. Для этого потребовалось немного изменить ранее сделанныйый запрос:
… перебросив связь к K_UL с распорядителя (K_ULID_PARENT) на учреждение (K_UL) и поставив фильтр на распорядителя (K_UL_PARENT=14099)
Здесь его, например, можно взять:
… т.е из запущенной в третьем «окне» программы.
Тексты SQL-запроса тут:
https://drive.google.com/file/d/15D0ZFp3bhho_3bj-iGH4WYTu7xToYXtg/view?usp=sharing
На выходе все суммы по всем экономическим статьям учреждений района. Все кроме 340-й статьи я скрыла тоже уже в Excel-е. Легко видеть, что почти вся сумма пошла на 40-ю горбольницу:
Дальше я запускаю свою замечательную формочку, которую я тоже могу перегнать в Excel
И уже в нем детально изучаю эту огромную цифру:
Самое большое тут 559 млн по ОМС-у. Смотрю расходные документы по кнопке ZF_R на нужной строке:
Меняю количество выбираемых строк с 10 на 10 000 чтобы выбралось всё:
… и сортирую (кнопками сверху) весь список в порядке убывания даты. Любуюсь на загадочною закупку расходных материалов, которая видна даже в районных цифрах.
В контрактах так:
Не знаю, что это за «питание» и «продукты животноводства» но все они проплачены (платёжки по РНК – кнопка «ZF_R»).
Не знаю что это такое. Это был просто пример использования….
А всё это вместе было про то, что в программе всего этого нет, хотя сделать конечно можно. Проблема только в том, что я не знаю, что я захочу выбрать завтра. Писать под каждое такое пожелание программу довольно хлопотно, а такие запросы пишутся за минуты. Если ничего интересного не нашлось, то можно выкинуть и забыть. А программой можно делать только то, что имеет смысл каждый день использовать.
Пример здесь простейший. Интересное вылезло на самых общих цифрах. Но есть возможность использовать и более тонкие статистические методы обработки информации, позволяющие увидеть, что происходящее в одном учреждения на фоне общей картины очень необычно.
Без выхода на этот уровень гибкости и умений выбирать такую информацию довольно сложно и долго. А так возможности сильно расширяются.
|