|
Расчет оборотов или нарастающий итог
|
|||
---|---|---|---|
#18+
Есть таблица с ежедневными оборотами по каждому товару. CREATE TABLE [dbo].[dmove] ( [kodt] [int, [data] [smalldatetime] NULL , [kolvr] [float] NULL , [kolvr_t] [float] NULL , ) ON [PRIMARY] GO Необходимо получить накопительные данные на каждый день по приходу расходу.Процедура расчета ниже. Единственно что во всем этом смущает скорость. Может кто подскажет кто как выходит из подобных ситуаций? SET NOCOUNT ON SET DATEFORMAT ymd declare @t_kodt int declare kodt_c cursor for select вшыештсе kodt from dmove group by kodt order by kodt DECLARE @iTemp int, @iTemp2 int open kodt_c FETCH NEXT FROM kodt_c into @t_kodt WHILE @@FETCH_STATUS = 0 BEGIN SELECT @iTemp = 0 SELECT @iTemp2 = 0 update dmove set kolvr_t = kolvr_t + @iTemp, @iTemp = @iTemp2, @iTemp2 = @iTemp2 + kolvr where kodt=@t_kodt FETCH NEXT FROM kodt_c into @t_kodt end ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2002, 20:47 |
|
Расчет оборотов или нарастающий итог
|
|||
---|---|---|---|
#18+
Может попробовать немного прооптимизировать Код: 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. 37. 38. 39. 40. 41. 42.
Далее вот так заполнялось Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. 45.
по коду видно что в таблице движения находится около 37,000,000 записей за пять месяцев на 5000 наименований товара и 30 дней в месяце и 50 приёмов/передач на день И выборка Код: 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.
Максимальная продолжительность запроса ~2сек Но попробуйте все таки дождаться ответа от гуру может они что более дельное посоветуют. Я не занимался никогда движением товара поэтому это экспромт С уважением. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2002, 00:35 |
|
Расчет оборотов или нарастающий итог
|
|||
---|---|---|---|
#18+
строчку Код: plaintext 1.
можно заменить на Код: plaintext 1. 2. 3.
явно будет красивее ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2002, 08:01 |
|
Расчет оборотов или нарастающий итог
|
|||
---|---|---|---|
#18+
2Dl Поищите в форуме по словосочетаниям "нарастающий итог", "нарастающим итогом", ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2002, 16:13 |
|
Расчет оборотов или нарастающий итог
|
|||
---|---|---|---|
#18+
Если нет затруднений в винчестере (читать как Деньги), купите винт заведи еще одну БД и туда каждый день ночью скидывай итоги за день, тогда обсчет займет 0.(0)1 сек. на пополнение всей этой большой постоянно растущей таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2002, 18:31 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1820676]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 154ms |
0 / 0 |