Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 05

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Сейчас это используется иначе. Есть операция, для которой в виде представления заполняется сопоставление данных. Т.е. например операция продажа, для неё в таблицу регистра продаж нужно заполнить счёт 9001 сумма 120. Вторая строка счёт 9003 сумма -20 рублей, третья строка 9002 сумма 50 рублей.
Ещё порядка 7 проводок для одной операции продажа. Всего операций порядка 30, соответственно если писать структуру мэппинга через union all будет не менее 300 проводок. В сложном примере 300 проводок и заполнение каждой проводки ещё различной аналитикой. Будет не менее 10000 строк запроса, который как-то описать будет крайне не удобно.
Я предполагаю, что это все можно сделать в качестве таблицы, а не такого дикого кода из тысяч строк;/
а почему именно через union?
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
а почему именно через union?
Потому, что разные данные заполняются в колонки. В некоторых запросах все идентично, а отличаются только where..., соответственно и счёт. В целом мне такое описание по заполнению программисты дали)
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Сейчас это используется иначе. Есть операция, для которой в виде представления заполняется сопоставление данных. Т.е. например операция продажа, для неё в таблицу регистра продаж нужно заполнить счёт 9001 сумма 120. Вторая строка счёт 9003 сумма -20 рублей, третья строка 9002 сумма 50 рублей.
Ещё порядка 7 проводок для одной операции продажа. Всего операций порядка 30, соответственно если писать структуру мэппинга через union all будет не менее 300 проводок. В сложном примере 300 проводок и заполнение каждой проводки ещё различной аналитикой. Будет не менее 10000 строк запроса, который как-то описать будет крайне не удобно.
Я предполагаю, что это все можно сделать в качестве таблицы, а не такого дикого кода из тысяч строк;/
Каждая проводка в отдельной таблице?
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Oleg T
Каждая проводка в отдельной таблице?
Нет, все проводки идут в таблицу единую. Заполнение этой таблицы идёт через view, где описываю все проводки для каждой операции через union all
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Нет, все проводки идут в таблицу единую. Заполнение этой таблицы идёт через view, где описываю все проводки для каждой операции через union all
Вот эти каждая проводка, прописанная через union, они из разных таблиц берутся?
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Oleg T
Вот эти каждая проводка, прописанная через union, они из разных таблиц берутся?
Таблица в основном одна. А параметры where разные. И суммовые выражения разные
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Таблица в основном одна. А параметры where разные. И суммовые выражения разные
Тогда только динамический SQL, либо все же поморщить мозг и выделить принципы, сгруппировать расчеты и сделать выборку через case.
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Ок, спасибо почитаю. Может чего там интересного вычитаю)
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Таблица в основном одна. А параметры where разные. И суммовые выражения разные
Вы делаете то, чем будут пользоваться другие люди?
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Oleg T
Вы делаете то, чем будут пользоваться другие люди?
Я делаю логику заполнению итоговой таблицы. Таблицей - да, другие будут пользоваться. Логику, что формирую для заполнения другие использовать не будут
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Alexander Starikov
Ок, спасибо почитаю. Может чего там интересного вычитаю)
Don't get me wrong. With all the love in the world. Используемая вами терминология, говорит о том, что базы данных несколько не ваша основная область знаний. Потому я хотел бы попросить вас крайне внимательно отнестись к изучению методов до реализации дабы потом не переделывать. Нисколько не желаю вас обидеть. Пытаюсь подобрать слова максимально корректно.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Если не пооучится с union, то можно попробовать разбить задачу на несколько подходов с выборкой однородных данных и вставкой. В одной транзакции тяжелые расчеты делать не желательно. Именно поэтому советую итеративный подход.
источник

AS

Alexander Starikov in SqlCom.ru - Стиль жизни SQL
Oleg T
Don't get me wrong. With all the love in the world. Используемая вами терминология, говорит о том, что базы данных несколько не ваша основная область знаний. Потому я хотел бы попросить вас крайне внимательно отнестись к изучению методов до реализации дабы потом не переделывать. Нисколько не желаю вас обидеть. Пытаюсь подобрать слова максимально корректно.
Да, спасибо за напутствие. И самому не хочется сделать что-то неразумное)
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Коллеги, подскажите есть ли возможность посмотреть количество ошибок при insert?
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Заметил что в реальности в базу записывается например 1 млн записей, а в query store количество выполненых insert-ов скажем 1.1 млн
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Так как у меня 1с))) думаю может платформа понимая что insert не прошел делает его повторно
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Может счётчик какой есть или статистика какая
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander
Заметил что в реальности в базу записывается например 1 млн записей, а в query store количество выполненых insert-ов скажем 1.1 млн
Все ошибки при insert выдаются клиенту, Который выполняет этот запрос.
На один insert (не на запись,а на оператор) может быть либо ноль, либо одно как максимум сообщение об ошибке.
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Оно то может и выдаётся но платформа мне об этом не говорит)))
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Там идёт одна инструкция для одной записи
источник