Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Помогите, плиз, разобраться в проблеме с одним запросом. Есть две таблицы: Партиясерийный номеркод товарапартиякол-во товара в блокекол-во товара доступного Партия-и-упаковкасерийный номерпартияномер упаковкикол-во товарастатус упаковки И есть запрос формата: Код: sql 1. Проблема в том что я не могу понять как поставить условие, чтобы суммировалось количество товара для каждой партии отдельно, так как во 2 таблице есть множество записей с одной и той же партией, но номер упаковки отличается и у каждой упаковки свой статус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 13:25 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Для примера накидал данные для таблиц: Партия серийный номер код товара партия кол-во товара в блоке кол-во товара доступного1 67983 партия 1 0 02 67983 партия 2 0 03 67983 партия 3 0 0 Партия-и-упаковка серийный номер партия номер упаковки кол-во товара статус упаковки1 партия 1 43 27 блок2 партия 2 67 58 норм3 партия 2 87 58 блок4 партия 2 34 65 блок5 партия 3 23 45 норм6 партия 3 81 31 блок7 партия 2 15 76 норм8 партия 3 70 76 блок Т.е. запрос должен в таблице "Партия" для партии 1 обновить значение "кол-во товара в блоке" = 27, для партии 2 = 123, для партии 3 = 107 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 13:39 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Соединиться по партиям и условию 'блокировано' и посчитать суммы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 15:23 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
google: update join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2019, 18:06 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
BredSpit, это и так понятно, а поконкретнее? Как написать подзапрос для таблицы "партия-и-упаковка", чтобы он не греб все стрки подряд? Потому что если поставить условие после него и в основном апдейте ставить Код: sql 1. т он сначала просуммирует все количество, а потом только будет обновлять таблицу [партия]. А мне нужно чтобы он суммировал каждую партию отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 05:58 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Всё зависит от того, в разрезе чего у тебя коды уникальны. Скорее всего надо добавить условия партия.серийный номер = Партия-и-упаковка.серийный номер и партия.партия = Партия-и-упаковка.партия Хотя странно, почему в "Партия-и-упаковка" нет "код товара" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 07:16 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Есть разница между. "Проставить для всех партий сумму кол-ва из таблицы "партия-и упаковка" с со статусом упаковки =блок" и "Проставить для всех партий сумму кол-ва СООТВЕТСТВУЮЩИХ товаров из таблицы "партия-и упаковка" с со статусом упаковки =блок" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 08:43 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
982183, Код товара в таблице есть, но у одного товара множество партий, а вот партия всегда уникальна (даже у разных товаров не может быть одинаковых партий) поэтому привязку надо сделать через партию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 09:03 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
PizzaPizza, насчет использования join вместо подзапроса была идея, но у меня не получается корректно составить эту конструкцию(((( В join я пока не очень силен. Привык работать подзапросами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 09:05 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Laikon982183, Код товара в таблице есть, но у одного товара множество партий, а вот партия всегда уникальна (даже у разных товаров не может быть одинаковых партий) Есть партия товаров (Когда один код партии может принадлежать нескольким товарам) Есть партия товара (Когда партия товара уникальна в разрезе номенклатуры) Есть уникальная партия. (Когда именно код партии идентифицирует товар) Laikon поэтому привязку надо сделать через партию Значит тебе надо добавить условие партия.партия = Партия-и-упаковка.партия потом научишься через join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 11:47 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Laikon, без join в sqlе практически делать нечего - это один из смыслов реляционных баз Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2019, 20:38 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Всё правильно, но человек в данном случае структуру update не понимает. Не видит, что для обновления надо должным образом сформировать/подготовить данные для обновления. Что надо и сгруппировать и суммировать и сравнить. А вложенный запрос он не поймет. http://sqlfiddle.com/#!18/9ed02/3 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2019, 07:23 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
982183, PizzaPizza, т.е. я правильно понимаю, что просто с наскока обновить данные нереально и необходимо создать виртуальную таблицу, где произвести все расчеты и потом обновиться из этой виртуально таблицы? Бин, печально....Я данные в таблицах просто для примера вам привел, а по факту в каждой таблице записей больше тысячи и перечислять все в новую таблицу капец как не хочется.......Что касается вложенного запроса - я вот как раз пытался сделать что-то подобное при приравнивании, но вот не смог догадаться как связать условие по партии из мелкого запроса с основным...Ладно, но мыслю для переваривания вы мне подкинули! Большое спасибо!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2019, 07:10 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
982183, PizzaPizza, мне еще подкидывали идею касательно пошагового апдейта, т.е. с использованием курсора. Как ваше мнение - есть ли смысл копать в эту сторону? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2019, 07:12 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
PizzaPizza дал вам конечное, полностью работоспособное решение. Я попытался пошагово объяснить логику и синтаксис. Посмотрите учебные примеры по UPDATE там всё разжевано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2019, 07:23 |
|
||
|
Выборочное обновление данных обной таблицы на основании параметров другой таблицы
|
|||
|---|---|---|---|
|
#18+
Laikon необходимо создать виртуальную таблицу, где произвести все расчеты и потом обновиться из этой виртуально таблицы? У тебя же в условии сказано " основании параметров другой таблицы" скорее всего "основании ДАННЫХ другой таблицы" в таблице у тебя нужных данных НЕТ. Их надо предварительно сформировать (агрегировать) Laikon а по факту в каждой таблице записей больше тысячи и перечислять все в новую таблицу капец как не хочется....... Сколько лишних миллисекунд будет выполняться запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2019, 08:15 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=98&tid=1687644]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 340ms |

| 0 / 0 |
