Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте. Пишу программу для подсчета итогов, разобрался с sum() и двойной сортировкой, но сделать нужную сортировку всё равно не получается. Есть таблица вида: "PRODUCT""AGE""COMPANY""SALARY""Appple"32"Ahmedabad"2000"Banana"25"Delhi"1500"Banana"23"Kota"2000"Orange"25"Mumbai"6500"Grapes"27"Bhopal"2500"Orange"22"MP"4500"Orange"24"Indore"10000 Нужно получить таблицу вида: "PRODUCT""AGE""COMPANY""SALARY""Orange"21000"Orange"24"Indore"10000"Orange"25"Mumbai"6500"Orange"22"MP"4500"Banana"3500"Banana"23"Kota"2000"Banana"25"Delhi"1500"Grapes"2500"Grapes"27"Bhopal"2500"Appple"2000"Appple"32"Ahmedabad"2000 Т. е. считаем итог по каждому товару, максимальная итоговая сумма идет первой, после нее список записей с таким же товаром сортированные по убыванию, потом следующий итог с записями и т.д. Если делать двойную сортировку то получается список товаров по алфавиту внутри которого сортировка по итогу, а нужны группы товаров с сортировкой по итогу. Итог есть отсортированный в отдельной таблице. Пробовал делать цикл for по товарам, на каждый товар insert oreder by, но так очень долго. Реально это вообще сделать средствами SQL? База CSV-файл (выгрузка из 1с), общение идет через "Microsoft.ACE.OLEDB.12.0". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 17:35 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Goanfed, ROLLUP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 17:48 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#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. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 18:28 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Goanfed, Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 14:27 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Goanfed, Если вдруг еще и тотал понадобится: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 14:31 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
nullin, в придачу Эквиваленты GROUPING SETS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 14:33 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Спасибо, смысл понятен, но сделать не получилось - ошибка "Missing operator" на Код: sql 1. и Код: sql 1. SQL Compact вообще не поддерживает команды "over", "grouping sets" как я понял. Придется делать переброс в нормальную БД и работать уже в ней :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 22:56 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
GoanfedПридется делать переброс в нормальную БД и работать уже в ней :(достаточно знать предмет с которым работаете... GoanfedИтог есть отсортированный в отдельной таблице. Код: sql 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. табличная переменная @Q это ваша таблица с итогами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 23:24 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#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. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. табличная переменная @Q это ваша таблица с итогами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 00:46 |
|
||
|
Сложная сортировка для подсчёта итогов
|
|||
|---|---|---|---|
|
#18+
Дедушка, тоже не работает - Изображение получившейся таблицы . Код такой получился: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Это исходная таблица Код: plsql 1. Здесь посчитанные итоги с сортировкой по сумме Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 17:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39643591&tid=1689728]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 377ms |

| 0 / 0 |
