SQL как обновить столбец в строке, когда переменная столбца находится в других столбцах - PullRequest
0 голосов
/ 05 июня 2018

Мне нужна помощь с запросом SQL:

Вот мой черновик, например, SQL: Черновик SQL

У меня есть 5 примеров строк с некоторыми переменными в категории 5 "столбцы «catid, parentid, parentid2, parentid3 и parentid4» и столбец 6 как SUM.

Мне нужно запрос SQL для установки в обработчике событий или CRON для переменной UPDATE SUM для КАЖДОЙ catid со столбцом SUM «сумма» изВСЕ строки, которые имеют catid в parentid, parentid2, parentid3 или parentid4 ИЛИ catid имеют parentid как NULL, но есть много строк с этим catid в parentid, parentid2, parentid3 или parentid4 - и тогда мне нужно обновить эту строку суммой из всех "столбцы "сумма" из строк этого вопроса.

В этом примере 5 строк с катидой, подобной 142. Есть R2 и R3 с 142 в качестве катиды.Затем мне нужно обновить столбец SUM для R2 и R3 с 19000 (SUM / R1 + SUM / R2 + SUM / R3 + SUM / R4 + SUM / R5)

Любая помощь, пожалуйста?Я буду очень признателен ...

SELECT q.userid, q.categoryid, sum(q.pointsasall) as ilosc FROM qa_catpoints q 
WHERE (q.categoryid = q.parentid OR q.parentid2 OR q.parentid3 OR q.parentid4) 
group by q.userid, q.categoryid ORDER BY q.userid ASC

СТРУКТУРА ТАБЛИЦЫ:

CREATE TABLE `qa_catpoints` (
  `categoryid` int(11) NOT NULL,
  `catname` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `parentid` int(11) NOT NULL,
  `parentid2` int(11) NOT NULL,
  `parentid3` int(11) NOT NULL,
  `parentid4` int(11) NOT NULL,
  `userid` int(11) NOT NULL,
  `pointsasall` int(11) NOT NULL,
  `pointsasall2` int(11) NOT NULL
)

ОЖИДАЕМЫЙ ВЫХОД ПОСЛЕ ЗАПРОСА УСПЕХА:

expect output (corrected)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...