SQL如何在列变量位于其他列

时间:2018-06-05 18:03:04

标签: mysql sql sum

我需要SQL查询的帮助:

以下是我的草案,例如SQL: SQL draft

我有5个示例行,其中包含5个“类别”列中的一些变量:“catid,parentid,parentid2,parentid3和parentid4”,6列为SUM。

我需要SQL查询在eventsheduler或CRON中设置UPDATE SUM变量用于EACH catid,其中SUM列“sum”来自所有行,其中包含parentid,parentid2,parentid3或parentid4或者catid具有类似NULL的parentid,但是有parentid,parentid2,parentid3或parentid4中有这个catid的很多行 - 然后我需要用来自该问题的行中所有“sum”列的sum来更新这一行。

在这个例子中有5行,catid就像142。 有R2和R3与142作为catid。然后我需要用19000更新R2和R3的SUM列(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)

0 个答案:

没有答案