|
select case
|
|||
---|---|---|---|
#18+
Подскажите, существует право на жизнь следующий вариант Код: sql 1. 2. 3. 4.
Суть следующая есть несколько цен, в зависимости от выбранной цены в одном случае выбрать цену умноженную на курс с округлением в большую сторону, в другом без округления. Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 23:59 |
|
select case
|
|||
---|---|---|---|
#18+
Не имеет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 00:19 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а как лучше сделать в данном случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 00:22 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНе имеет. А почему не имеет? Сам case работает: Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 03:34 |
|
select case
|
|||
---|---|---|---|
#18+
Sashaua> Подскажите, существует право на жизнь следующий вариант Право на жизнь имеют все варианты. Какой из них лучше - зависит от. > есть несколько цен, в зависимости от выбранной цены Несколько цен где? Т.е. эту операцию нужно делать для каждой цены отдельно или один и тот же вариант для всех? Грубо говоря, результирующая запись одна или их много? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 03:49 |
|
select case
|
|||
---|---|---|---|
#18+
Sashaua, Полный запрос нужен. Я, например, вижу, что запрос по неким таблицам, а кейс по локальной переменной. Странновато. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 11:08 |
|
select case
|
|||
---|---|---|---|
#18+
Это как раз не имеет значения. Имеет значение кейс меняется или неизменен для резалтсета. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 11:43 |
|
select case
|
|||
---|---|---|---|
#18+
KreatorXXISashaua, Полный запрос нужен. Я, например, вижу, что запрос по неким таблицам, а кейс по локальной переменной. Странновато. Много где применяется подход "цена по первой колонке, по второй колонке" и т.п. В прайсе предварительно заданы допустим 3-5 колонок с различными ценами, у клиента имеется право использовать цены из конкретной колонки. Вот в параметре номер колонки и задается. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 11:46 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНе имеет.Почему? А то у меня немного другое мнение. Да, если оно не внутри процедуры, то может потребоваться явно указать cast-ом тип параметра Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:00 |
|
select case
|
|||
---|---|---|---|
#18+
fraks> Много где применяется подход fraks> Вот в параметре номер колонки и задается. Василий, ви таки правы, но чтобы так задавался способ округления, думаю, не слышали даже ашкенази Майами. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:17 |
|
select case
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyПочему? Потому что оптимизатор Firebird недостаточно умён чтобы предвычислять инварианты и отсекать мёртвые ветви дерева. А в данном случае аффтар с клиента гонит константу, которая заставляет отсыхать кусок запроса. По-моему, это неправильный способ разделения работы с точки зрения идеологии клиент-сервер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:36 |
|
select case
|
|||
---|---|---|---|
#18+
Ну, в данном простейшем случае это не так важно. Вот если бы там были поля из разных таблицы, подзапросы и пр. извращения - да, моветон. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:43 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovв данном случае аффтар с клиента гонит константу, которая заставляет отсыхать кусок запроса.Клеить куски запроса каждый раз заново, каждый раз препарировать и при этом не напортачить... или же оттестировать один раз запрос на пяток параметров и кормить потом только параметры без склеек-переклеек. Я не берусь судить заранее, что выгодней. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:55 |
|
select case
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyКлеить куски запроса каждый раз заново, каждый раз препарировать и при этом не напортачить... или же оттестировать один раз запрос на пяток параметров и кормить потом только параметры без склеек-переклеек. Только чайники клеят. Ну а "протестировать пяток запросов" против "протестировать один запрос с пятью значениями параметра" всё же попроще будет. В данном же случае и вовсе ничего не надо клеить: достаточно всегда получать с сервера неокруглённое значение, а потом в зависимости от клиентской переменной округлять или не округлять его. Арифметика на сервере - скользкая штука. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 13:00 |
|
select case
|
|||
---|---|---|---|
#18+
DS> достаточно всегда получать с сервера неокруглённое значение Не перевелись здравомыслящие люди... :) Но есть нюанс (с) - обработанное значение может понадобиться опять же на сервере. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 13:06 |
|
select case
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамобработанное значение может понадобиться опять же на сервере. Вот где оно понадобится - там и нужно принимать решение об его обработки или необработке. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 13:13 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovАрифметика на сервере - скользкая штука.Арифметика она и в Африке арифметика. А вот округление многие тупо не понимают, и дело тут не в сервере. Ну не укладывается в головах, что действия над округленными операндами дадут отличающийся результат от округленного результата действий над исходными операндами. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 13:52 |
|
select case
|
|||
---|---|---|---|
#18+
fraksМного где применяется подход "цена по первой колонке, по второй колонке" и т.п. Задача похожая, есть справочник товаров и есть несколько цен (Оптовая,Розничная,ЦенаА,ЦенаБ.....), бизнес захотел чтобы при выборке справочника оптовая,розничная цены неокруглялась, а все остальные округлялись. id_price ето и есть ID_цены при выборке выбираеться только одна ID_цена. id_price передаеться с клиента и в рамках одной выборки неизменно, хочу елегантным способом сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 18:16 |
|
select case
|
|||
---|---|---|---|
#18+
Sashauaесть справочник товаров и есть несколько цен (Оптовая,Розничная,ЦенаА,ЦенаБ.....) Ты ещё скажи, что под эти цены выделены отдельные поля в справочнике товаров... Sashauaхочу елегантным способом сделать И почему большинство ТСов для этого разводят проктостоматологию?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 18:25 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТы ещё скажи, что под эти цены выделены отдельные поля в справочнике товаров... Нет, есть отдельная таблица цен ID_PRICEID_MODELPRICEDATE_ID_USERID_STATUS При желании можно наплодить сколько угодно цен в справочнике. Когда изменяют цену текущая активная цена ID_STATUS становиться неактивной и добавляеться новая запись с активной ценой, таким образом можно посмотреть кто и когда поменял цену. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 18:36 |
|
select case
|
|||
---|---|---|---|
#18+
Sashauaесть отдельная таблица цен Но при этом признак необходимости округления ты задаёшь в CASE. Ух ты... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 18:41 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Но при этом признак необходимости округления ты задаёшь в CASE. Ух ты... Понимаю Вашу иронию. Да можно на клиенте округлить все цены так как мне необходимо, так и делаю. Но вылазят хвосты когда цену необходимо пересчитать с одной валюты в другую например PRICE =15 текущий курс = 26.31 = 394.65 продажники хотять чтобы это было 395. Для некоторых цен. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 18:49 |
|
select case
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамfraks> Много где применяется подход fraks> Вот в параметре номер колонки и задается. Василий, ви таки правы, но чтобы так задавался способ округления, думаю, не слышали даже ашкенази Майами. Я таки не Василий :) С округлениями еще больше заморочек. Возможно человек делает несколько вариантов под хотелки разных контрагентов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 19:17 |
|
select case
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovГаджимурадов Рустамобработанное значение может понадобиться опять же на сервере. Вот где оно понадобится - там и нужно принимать решение об его обработки или необработке. Лучше что бы выравнивание значений выполнялось в единственном месте - тогда, в случае чего и искать и править придется в нем же, а не в куче запросов и в куче клиентов в разных запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 19:19 |
|
|
start [/forum/topic.php?fid=40&msg=39675030&tid=1561037]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 477ms |
0 / 0 |