Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
sql server 2016, то же самое и на 2017 похоже на баг в первом варианте: DECLARE @price NUMERIC(32,16) = 12599 DECLARE @discount NUMERIC(32,16) = 7 SELECT ((@price - ROUND(@price * (1- @discount/100),0)) /@price * 100) GO DECLARE @price FLOAT(32) = 12599 DECLARE @discount FLOAT(32) = 7 SELECT ((@price - ROUND(@price * (1- @discount/100),0)) /@price * 100) правильный результат во втором. Кто может объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:07 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
А можно подробнее? я причину так и не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:28 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?, подробней чем там некуда уже NUMERIC(15,10) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:33 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
ну или медитируйте над фразой автор* The result precision and scale have an absolute maximum of 38. When a result precision is greater than 38, the corresponding scale is reduced to prevent the integral part of a result from being truncated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:35 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
спасибо, остается только медитировать :) Microsoft Dynamics AX имеет всего один числовой тип данных в sql sever - NUMERIC(32,16). Просто круть. А oracle, кстати, этот кейс считает правильно. Привет микрософту :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:27 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?, Привет скорее тебе. Вот выполни Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:31 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
a_voronin, а что изменится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:37 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
c FLOAT правильно работает хоть с FLOAT(1) хоть с FLOAT(53) криво работает именно с NUMERIC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:40 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?c FLOAT правильно работает хоть с FLOAT(1) хоть с FLOAT(53) криво работает именно с NUMERIC это только вам так кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:42 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
TaPaKчто за баг?c FLOAT правильно работает хоть с FLOAT(1) хоть с FLOAT(53) криво работает именно с NUMERIC это только вам так кажется помедитируйте теперь вы, у вас есть есть ERP-система и субд от одного разработчика, которая, криво работает. От того, что микрософт задокументировала свой алгоритм ее же erp ровнее работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:51 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?TaPaKпропущено... это только вам так кажется помедитируйте теперь вы, у вас есть есть ERP-система и субд от одного разработчика, которая, криво работает. От того, что микрософт задокументировала свой алгоритм ее же erp ровнее работать не будет. какой алгоритм? вам надо какая точность надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:54 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?TaPaKпропущено... это только вам так кажется помедитируйте теперь вы, у вас есть есть ERP-система и субд от одного разработчика, которая, криво работает. От того, что микрософт задокументировала свой алгоритм ее же erp ровнее работать не будет.Тогда раз у вас претензия к некоторой ERP-системе от MS, может быть вы обратитесь в ее службу поддержки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:58 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:02 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
TaPaKкакой алгоритм? вам надо какая точность надо вот этот алгоритм, коорый усЁк точность на 4-ом знаке: Операция Точность результата Масштаб результата * e1 + e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2) e1 - e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2) e1 * e2 p1 + p2 + 1 s1 + s2 e1 / e2 p1 - s1 + s2 + max(6, s1 + p2 + 1) max(6, s1 + p2 + 1) e1 { UNION | EXCEPT | INTERSECT } e2 max(s1, s2) + max(p1-s1, p2-s2) max(s1, s2) e1 % e2 min(p1-s1, p2 -s2) + max( s1,s2 ) max(s1, s2) * Точность и масштаб результата имеют абсолютный максимум, равный 38. Если значение точности превышает 38, то соответствующее значение масштаба уменьшается, чтобы по возможности предотвратить усечение целой части результата. ---------- Я вам привел реальный кейс, когда манагеры с IT не могли понять в чем причина кривой цифры. на калькуляторе и на oracle, с подобным типом данных, цифра получается одинаковая и не такая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:11 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичТогда раз у вас претензия к некоторой ERP-системе от MS, может быть вы обратитесь в ее службу поддержки? Может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:15 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?TaPaKкакой алгоритм? вам надо какая точность надо вот этот алгоритм, коорый усЁк точность на 4-ом знаке: Операция Точность результата Масштаб результата * e1 + e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2) e1 - e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2) e1 * e2 p1 + p2 + 1 s1 + s2 e1 / e2 p1 - s1 + s2 + max(6, s1 + p2 + 1) max(6, s1 + p2 + 1) e1 { UNION | EXCEPT | INTERSECT } e2 max(s1, s2) + max(p1-s1, p2-s2) max(s1, s2) e1 % e2 min(p1-s1, p2 -s2) + max( s1,s2 ) max(s1, s2) * Точность и масштаб результата имеют абсолютный максимум, равный 38. Если значение точности превышает 38, то соответствующее значение масштаба уменьшается, чтобы по возможности предотвратить усечение целой части результата. ---------- Я вам привел реальный кейс, когда манагеры с IT не могли понять в чем причина кривой цифры. на калькуляторе и на oracle, с подобным типом данных, цифра получается одинаковая и не такая. для и ндусов всегда так авторSELECT (100*CAST((@price - ROUND(@price * (1- @discount/100),0))as INT) /(@price)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:16 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
TaPaKдля и ндусов всегда так авторSELECT (100*CAST((@price - ROUND(@price * (1- @discount/100),0))as INT) /(@price)) лучше бы индусы не писали ни sql server, ни erp, но в любом случае еще один жирный минус sql server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:33 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за багTaPaKдля и ндусов всегда так пропущено... лучше бы индусы не писали ни sql server, ни erp, но в любом случае еще один жирный минус sql server обидели мышку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:36 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?А oracle, кстати, этот кейс считает правильно. Привет микрософту :)А диапазоны numeric(decimal) на Oracle и MSSQL не пытались сравнить, прежде чем ярлыки лепить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:46 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
invmчто за баг?А oracle, кстати, этот кейс считает правильно. Привет микрософту :)А диапазоны numeric(decimal) на Oracle и MSSQL не пытались сравнить, прежде чем ярлыки лепить? NUMBER A decimal number with up to 38 significant digits in the range of -(10**125) to +(10**125) Вы имеете ввиду, что там тоже возможны подобные кейсы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 19:01 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за багTaPaKдля и ндусов всегда так пропущено... лучше бы индусы не писали ни sql server, ни erp, но в любом случае еще один жирный минус sql serverНе используйте MSSQL, делов-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 19:03 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг, я бы не стал так ратовать за оракл с его неявными преобразованиями типов. так-то оно тоже иногда доставляет проблем "на ровном месте". просто нужно учитывать специфику каждой СУБД и подстраивать свои решения под неё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 19:18 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхчто за баг, я бы не стал так ратовать за оракл с его неявными преобразованиями типов. так-то оно тоже иногда доставляет проблем "на ровном месте". просто нужно учитывать специфику каждой СУБД и подстраивать свои решения под неё... согласен, найду такой баг в оракле - поставлю жирный минус ораклу. Странно, что всех это устраивает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 20:49 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
[quot что за баг?]Добрый Э - Эхсогласен, найду такой баг в оракле - поставлю жирный минус ораклу. Странно, что всех это устраивает... А как в оракле сейчас? А какой должен быть правильный алгоритм, чтобы всех устраивало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 21:14 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
[quot bideveloper]что за баг?пропущено... А как в оракле сейчас? А какой должен быть правильный алгоритм, чтобы всех устраивало? Этот кейс в оракле правильно отработал. В этом кейсе надо было 5-й знак хотя бы округлить, а не усекать. Уже было бы точнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 21:27 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевиччто за баг?пропущено... помедитируйте теперь вы, у вас есть есть ERP-система и субд от одного разработчика, которая, криво работает. От того, что микрософт задокументировала свой алгоритм ее же erp ровнее работать не будет.Тогда раз у вас претензия к некоторой ERP-системе от MS, может быть вы обратитесь в ее службу поддержки?Эта ERP-система вообще то сама общается с SQL Server, имеет свой собственный язык и не подразумевает чтобы кто-то лез напрямую в базу. Я думаю именно это в поддержке и скажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 22:06 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Попробуйте сначала умножить на 100, а потом уже разделить на @price, т.е. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:12 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
TaPaK, Упс, не заметил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:20 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Валентин К.Попробуйте сначала умножить на 100, а потом уже разделить на @price, т.е. [/src] Проблема не в том, как решить этот кейс, а в том, что в данном вопросе аксапта генерит сама sql-код и еще только с одним числовым типом. и такая лажа может выстрелить в любой момент. как у нас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 17:09 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
что за баг?Валентин К.Попробуйте сначала умножить на 100, а потом уже разделить на @price, т.е. [/src] Проблема не в том, как решить этот кейс, а в том, что в данном вопросе аксапта генерит сама sql-код и еще только с одним числовым типом. и такая лажа может выстрелить в любой момент. как у нас. давйте спрашивать при чём же здесь SQL Server? И абсолютно не факт что васм здесь скажут про правильную реализацию в Microsoft Dynamics AX, спрашивайте у поддержки/профильных форумах, 90% того что вы не умеете его готовить, но уже смело кричите что Д`артанья не здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 17:13 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
Если здесь трактовать constant, как любое отдельно взятое значение... https://technet.microsoft.com/en-us/library/ms191530(v=sql.105).aspx Converting decimal and numeric Data For the decimal and numeric data types, SQL Server considers each specific combination of precision and scale as a different data type. For example, decimal(5,5) and decimal(5,0) are considered different data types. In Transact-SQL statements, a constant with a decimal point is automatically converted into a numeric data value, using the minimum precision and scale necessary. For example, the constant 12.345 is converted into a numeric value with a precision of 5 and a scale of 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 17:46 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
[quot TaPaK]что за баг?пропущено... давйте спрашивать при чём же здесь SQL Server? И абсолютно не факт что васм здесь скажут про правильную реализацию в Microsoft Dynamics AX, спрашивайте у поддержки/профильных форумах, 90% того что вы не умеете его готовить, но уже смело кричите что Д`артанья не здесь Кого спрашивать? Здесь? на этом форуме? И для чего? Я что хотел выяснил - могу повторить свое мнение: в этом кейсе криво работает сиквел и криво с сиквелом работает аксапта, но это только мое мнение. Если вы считаете, что за этот кейс можно плюс серверу поставить (за такую потерю точности на ровном месте) - я же не против. Считайте, радуйтесь. Могло быть и хуже. Так можно и в идолы сиквел вознести, типа он во всех случаях всегда прав, он не может быть не правым, он просто такой, а кто не согласен - не используйте, как мне намекнули. А вам спасибо, что помогли разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 21:07 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
SQL 2012 Видимо так работает тип NUMERIC - ему нужно явно указывать дробные числа. Такое поведение раньше встречал и в других средах и языках программирования, не только в MS SQL. Можно ещё вспомнить про ++i + ++i :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 14:39 |
|
||
|
что за баг?
|
|||
|---|---|---|---|
|
#18+
formfactor, а я разници не увидел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 14:41 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1690236]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 355ms |

| 0 / 0 |
