|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
Привет. Например есть таблица как на картинке. Нужно выбрать строки с суммой = 5 Должны быть выбраны строки 1 и 4 Или, например, нужно выбрать строки с суммой = 6 Должны быть выбраны строки 2 и 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 19:56 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx Например есть таблица как на картинке. Нужно выбрать строки с суммой = 5 Должны быть выбраны строки 1 и 4 Или, например, нужно выбрать строки с суммой = 6 Должны быть выбраны строки 2 и 4 И если есть несколько вариантов, то нужно показать все, или достаточно одного? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:11 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
Количество строк в выборке любое. Если возможны разные комбинации, то подойдет любая из них. Я вроде давно с запросами работаю, но вот что-то споткнулся на такой задачке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:16 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx Количество строк в выборке любое. Если возможны разные комбинации, то подойдет любая из них. Я вроде давно с запросами работаю, но вот что-то споткнулся на такой задачке. Эта задача решается только полным перебором всех возможных вариантов, например, для вашего условия (сумма = 6) второй ответ 1, 2, 3 PS ищите по ключевым словам: "Задача о рюкзаке" + "SQL" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:21 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
msLex, полным перебором неинтересно, хотя возможно, конечно, тем более исходные таблицы небольшие, не больше сотни строк хотелось бы красиво одним запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:32 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx msLex, полным перебором неинтересно, хотя возможно, конечно, тем более исходные таблицы небольшие, не больше сотни строк хотелось бы красиво одним запросом Еще раз, ваша задача, это вариант известной "Задаче о рюкзаке". Варианты ее решения гуглятся. Один запросом не выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:37 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
msLex, Ну нет так нет. Спасибо! Утешает тот факт, что если бы решение с одним запросом существовало, а я о нем не знал, было бы печально. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2020, 20:51 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
— Голубчики, — сказал Фёдор Симеонович озабоченно, разобравшись в почерках. — Это же проблема Бен Бецалеля. Калиостро же доказал, что она не имеет решения. — Мы сами знаем, что она не имеет решения, — сказал Хунта, немедленно ощетиниваясь. — Мы хотим знать, как её решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 06:00 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
msLex Один запросом не выйдет. запрос для подсчета суммы чисел и проверки соответствия суммы данному числу ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 10:20 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx, Код: 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. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 10:43 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx, Код: 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. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 11:24 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
alexeyvg msLex Один запросом не выйдет. запрос для подсчета суммы чисел и проверки соответствия суммы данному числу Я не очень знаком с ораклом, но по тексту (и смыслу) похоже на рекурсивный CTE с перебором всех возможных "путей" сбора суммы. Для сколь-нибудь значимой выборки будет тормозить безбожно. entrypoint swkx, Код: 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. 43.
swkx Количество строк в выборке любое. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 11:28 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx хотелось бы красиво одним запросом А одним запросом можно Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 11:51 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
Спасибо всем откликнувшимся! Гляну чуть позже. Сейчас совсем некогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2020, 12:27 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
День добрый. Вроде как цель достигнута. Я так понял, что ключевой момент во всей этой затее это условие соединения таблицы с этой же таблицей. в общем виде выглядящее как Таблица2.ИдСтроки > Таблица1.ИдСтроки В моем случае быстрее получается, если искать комбинацию строк с нужной суммой по шагам, т.е. организовать цикл от 2 до 6 Шаг 1. формируем запрос с двумя таблицами и ищем сумму двух строк Шаг 2. формируем запрос с тремя таблицами и ищем сумму трех строк и т.д. при соединении семи таблиц и около сотни строк в исходной таблице уже ощутимые тормоза Еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2020, 17:06 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
Привет. Всё-таки перебор с некоторой оптимизацией оказался намного эффективнее решения с запросом. Даже не в разы, а на порядки быстрее. Для исходной таблицы примерно в сотню строк и искомой суммой, которая насобирается примерно в 30 строках, перебор выдает результат через 2-3 сек, запрос же намертво умирает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 21:25 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx, Если у вас есть готовое решение, выложите скрипт. Пригодиться тому, кто будет решать подобную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 12:43 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
Да мне в общем-то не жалко, но: Вряд ли у меня самый эффективный алгоритм. И как кто-то выше заметил, варианты решения гуглятся. Я с 1С работаю, поэтому в этой ветке вряд ли уместен мой код. Тем более вопрос к SQL уже не имеет никакого отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 14:24 |
|
Как выбрать запросом строки с нужной суммой по определенному полю
|
|||
---|---|---|---|
#18+
swkx Я с 1С работаю, поэтому в этой ветке вряд ли уместен мой код. Тем более вопрос к SQL уже не имеет никакого отношения. Если у вас не TSQL код, тогда конечно нет смысла его постить Если же все же TSQL и он быстрее предложенных выше, то почему бы и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 14:31 |
|
|
start [/forum/topic.php?fid=46&fpage=70&tid=1686536]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 449ms |
0 / 0 |