|
|
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Добрый день. Структура таблицы: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Поле type_tool принимает 0 или 1 (запчасть из tool / продукт из product). Поле code_tool код запчасти / продукта. Поле size_tool количество. Достаточно ли запчастей для сборки самолета ? т.е. необходимо обойти дерево. Имею такой код на java, пытаюсь сделать то же самое на sql. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2014, 15:18:27 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
В MySQL нет рекурсии. Посему придётся разворачивать дерево из таблицы product в рамках, например, хранимой процедуры, накапливая итоги во временной таблице. После завершения к ней привязываете к полученной таблице таблицу tool и получаете конечный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2014, 15:30:57 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Благодарю, результаты выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2014, 15:53:20 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Что то подобное, но необходимо переделать на с sql-е курсоры и циклы. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2014, 19:26:27 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Изменения. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2014, 19:34:50 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Изменения: Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 09:08:20 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Изменения: Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 09:21:08 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Но данный код не рабочий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 09:36:04 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Ну надо как минимум приводить копию кода, а не вольные раасуждения на тему. Что там за кавычки лишние? Что вообще за логика реализуется кодом - я, например, в этой каше разобраться не могу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:03:45 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Копию кода я приложил. это и есть внутренность процедуры которую я хочу написать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:09:12 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
т.е. я попробовал реализовать тот же алгоритм что и на ява в 1-ом посте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:10:30 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielcl Код: plsql 1. шта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:25:29 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
AkinaЧто вообще за логика реализуется кодомятакду, получить состав изделия, т.е. найти всех потомков определённой записи (потомков записи с заданным кодом и type_tool=1) scofielcl, сюда загляните 13675569 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:33:24 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
tanglir , я тожтакду... но реализация... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:37:42 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
tanglirscofielcl Код: plsql 1. шта? грубый набросок, не имеющий ничего общего с действительностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:38:36 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
почему вы считаете данный кусок кода логически неверным. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 12:49:15 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Забаная подсветка - ажно шесть строк красным - не наталкивает ни на какие мысли, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:01:27 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
ну синтаксис и логика довольно разные понятие, на верность синтаксиса я и не расчитываю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:03:29 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Пока синтаксис неверен - логику проверить невозможно. Да и бессмысленно - всё равно код будет изменён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:05:11 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
я конечно уберу красное, но суть останеться прежней Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:10:32 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Вот так: Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:16:01 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielcl, максимальная глубина дерева ограничена ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 13:33:01 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Это вообще на каком языке написано? фигурные скобки и прочие неизвестные серверу MySQL конструкции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:13:51 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
А алгоритм можно сделать таким. Создаём таблицу для накопления запчастей. Поле ID объявляем уникальным (можно первичным ключом). Кладём с неё начальную запись. Организуем цикл. Получаем и сохраняем в переменной количество записей таблицы. Вставляем в таблицу записи из исходных данных, связав их соотв. образом с временной и игнорируя дубликаты. Снова сохраняем в переменной количество записей таблицы. Продолжаем цикл, пока количества не совпадают. Количество циклюв получится на 1 больше макс. уровня вложенности. Теперь осталось связать таблицу со второй исходной и вывести результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:19:23 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Сейчас буду пробовать. Глубина ограничена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:31:12 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielcl, если глубина менее 255, - установить системную переменную max_sp_recursion_depth и попробовать рекурсивную функцию Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 14:46:50 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
AkinaА алгоритм можно сделать таким. Создаём таблицу для накопления запчастей. Поле ID объявляем уникальным (можно первичным ключом). Кладём с неё начальную запись. Организуем цикл. Получаем и сохраняем в переменной количество записей таблицы. Вставляем в таблицу записи из исходных данных, связав их соотв. образом с временной и игнорируя дубликаты. Снова сохраняем в переменной количество записей таблицы. Продолжаем цикл, пока количества не совпадают. Количество циклюв получится на 1 больше макс. уровня вложенности. Теперь осталось связать таблицу со второй исходной и вывести результат. А сколько у вас должно получится циклов всего ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 15:12:43 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
И что то я не понимаю , почему логику алгоритма из первого поста нельзя реализовать на sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 15:27:49 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielcl, в мускле нет рекурсивных запросов. Приходится делать процедурами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2014, 19:54:39 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
но в коде из первого поста нет рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2014, 10:24:35 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielclно в коде из первого поста нет рекурсии.Без рекурсии. Почти как в коде из первого поста. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2014, 13:33:41 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Благодарю. сейчас разберу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2014, 16:10:24 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Посмотрел ваш код. Для такого варианта, он работать не будет. т.к. в запросе queue происходит выборка только узлов второго порядка. вот дампы Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. т.е. как такового обхода дерева нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 11:03:34 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
> scofielcl: > Доброе утро. > Посмотрел ваш код. > Для такого варианта, он работать не будет. т.к. в запросе queue происходит выборка только узлов второго порядка. > {skipped} Согласен. Но вы же хотели "алгоритма из первого поста". Насколько знаю Жаву, код из первого поста также не обработает узлы "второго порядка". Поправьте, если ошибаюсь. ЗЫ: 17017347 смотрели ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 12:28:36 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Алгоритм из 1 поста полноценно обходит дерево. В первом цикле достается узел и для каждого проверяется наличие комплектующих. В внутреннем цикле эти самые узлы ложатся в очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 12:37:02 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Я недосмотрел, правильный алгоритм из первого поста приведен ниже: Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 12:39:24 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
> scofielcl: > Я недосмотрел, правильный алгоритм из первого поста приведен ниже: > {skipped} Этот алгоритм реализован в 17017347 . Есть баг(?): не учитывается, что одна простая деталь может входить в состав более чем одной составной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:01:15 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
скукотища Этот алгоритм реализован в 17017347 . Есть баг(?): не учитывается, что одна простая деталь может входить в состав более чем одной составной. Тогда необходимо работать в временной таблицей содержащей данные из tool. И уменьшать соответств. значения. Но я не думаю что тогда возможно будет применить рекурсию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:06:33 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
> scofielcl: > Тогда необходимо работать в временной таблицей содержащей данные из tool. > И уменьшать соответств. значения. Но я не думаю что тогда возможно будет применить рекурсию. У Вашего кода 17045113 тот же баг(?). "Багфикс" Код: plsql 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. 46. 47. 48. 49. 50. 51. 52. 53. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:14:26 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
В 17045413 неправильно объявлен курсор. Надо Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:24:48 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
Да, там тот же баг. Код: plsql 1. А что такое ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:27:19 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielclДа, там тот же баг. Код: plsql 1. А что такое ? ALTER TABLE в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:40:22 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
needs а не need ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:42:59 |
|
||
|
java code --> sql procedure/function
|
|||
|---|---|---|---|
|
#18+
scofielcl, сорри, очепятка. Должно быть Код: plsql 1. Добавляем индекс в таблицу-накопитель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2014, 13:51:21 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1833767]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 331ms |

| 0 / 0 |
