Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Имеется 2 таблицы. Нужно сделать выборку в одной таблице, просуммировать значения с одинаковыми id и записать эти значения в другую бд в поле с тем же id.
таблица 1 `goods`
id name quantity
----------------------
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
таблица 2 `sales`
id name sls stat
-------------------
1 aaa 1 new
2 bbb 2 old
3 aaa 2 new
4 ccc 1 new
5 bbb 1 new
6 aaa 2 new
7 bbb 3 old
Нужно просуммировать значения для поля sls для ааа, bbb, ccc из таблицы sales и записать полученные значения в поле quantity в таблице goods c проверкой по id и stat.
Я делаю такой запрос:
update goods t1, (
select `id`, `name`, `sls` from sales
) t2
set t1.`quantity` = sum(t2.`sls`) where t1.`id` =t2.`id` and t2.`stat`="new"
Тут изначально есть ошибка c where, но сделать правильно не хватает мозгов.
Помогите кто чем может .
Неактивен
не очень понятно, что нужно
какой должен быть результат после обновления для приведенных данных?
Неактивен
vasya написал:
не очень понятно, что нужно
какой должен быть результат после обновления для приведенных данных?
Если человеческим языком, то таблица sales это таблица продаж интернет-магазина. В нее пишется ид товара, и кол-во проданного. Товары в таблице периодически повторяются. Мне нужно просуммировать продажи для каждого товара из этой таблицы и результат суммирования записать в таблицу goods дополнительно проверив их по значению поля stat.
таблица 1 `goods`
id name quantity
----------------------
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
таблица 2 `sales`
id name sls stat
-------------------
1 aaa 1 new
2 bbb 2 old
3 aaa 2 new
4 ccc 1 new
5 bbb 1 new
6 aaa 2 new
7 bbb 3 old
Результат должет быть такой
id name quantity
----------------------
1 aaa 5
2 bbb 1 (так как у двух bbb поле stat имеет значение old
3 ccc 1
4 ddd 0
5 eee 0
Неактивен
Неактивен
Ура, работает!
Блин, второй раз пишу на форум и второй раз мне помогаете Вы - спасибо вам огроменное!
Неактивен