|
|
|
Помогите люди добрые!!!!!!
|
|||
|---|---|---|---|
|
#18+
Народ, помогите в решании такой проблемки. Я не могу написать сохраненку для подбивки по копейкам. Типовая бухгалтерская задачка. Т.е есть таблица, в которой, предположим 2 поля: Money, Komisiya Money - содержит цифру (округленную до 2 знака), а в Komisiya должна содержаться цифра (округленную до 2 знака)- Х% (т.е какой-то процент от Money), т.е 0,001*Х проблема в том, что если брать % из общей суммы round(Money*Х*0.01,2), то он не сходится с суммой того же % по каждой записи - sum(Komisiya*X*0.01) Необходимо раскидать по полю Komisiya по 0,01, что бы было полное схождение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 17:53:21 |
|
||
|
Помогите люди добрые!!!!!!
|
|||
|---|---|---|---|
|
#18+
Самый простой способ - округлить все кроме одного, а последнее считать как общая сумма минус сумма оставшихся округлённых. А вообще эта проблемма гораздо сложнее, чем кажется на первый взгляд. Так что сочувствую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 18:09:42 |
|
||
|
Помогите люди добрые!!!!!!
|
|||
|---|---|---|---|
|
#18+
Оно то так-то... было бы все классно, если бы эта разница была в 1 коп., а она (зараза), как правило, совсем другая :((( А бухгалтерия штука тонкая... Я то и алгоритм придумала, но в сохраненку впихнуть не получается :((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 18:15:21 |
|
||
|
Помогите люди добрые!!!!!!
|
|||
|---|---|---|---|
|
#18+
Вот процедура добавления/вычитания заданной суммы из накладной. Ответ в последнем апдейте. Подбивка суммы делается по самой денежной строке. Вы можете усложнить, сделав кол-во апдейтов равным <общее расхождение> / 0.01. Для накладной вроде катит, т.к. по отдельности строки мало кого интересуют. Хотя с другой стороны может возникнуть вопрос, а почему у вас комиссия по строке неправильно считается!? Типовая бухгалтерская задачка - пусть её бухгалтер и решает! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 18:24:38 |
|
||
|
Помогите люди добрые!!!!!!
|
|||
|---|---|---|---|
|
#18+
Мне кажется заработает такой код. Проще не бывает! create table #T(ID int, sum1 decimal(10,4), tot_sum decimal(10,4)) insert #T(id, sum1) values(1, 10.21) insert #T(id, sum1) values(2,20.46 ) insert #T(id, sum1) values(3, 15.23) insert #T(id, sum1) values(4, 16.49) insert #T(id, sum1) values(5, 10.21) insert #T(id, sum1) values(6,20.46 ) insert #T(id, sum1) values(7, 15.23) insert #T(id, sum1) values(8, 16.49) update #T set tot_sum = sum1*0.01 select * from #t declare @d decimal(10,4) set @d = 0 update #T set @d=tot_sum + @d-round(@d,2), tot_sum=round(@d,2) select * from #t drop table #T Удачи!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 11:58:22 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32058921&tid=1819537]: |
0ms |
get settings: |
7ms |
get forum list: |
29ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 310ms |

| 0 / 0 |
