尝试用另一列中的MAX()更新列,并计算MAX()发生的次数。我到处找过似乎我有正确的语法..。不知道问题出在哪里。
会很感激你的建议。
UPDATE `working` SET `NO_TOP_RATING` =
(SELECT MAX(`IRECCD`), COUNT(`ID`) FROM `working_2`
WHERE
`working_2`.`ANNDATS_CONVERTED` >= DATE_SUB(`working`.`ANNDATS_CONVERTED`,INTERVAL 1 YEAR)
AND
`working_2`.`ID` != `working`.`ID`
AND
`working_2`.`ID` != `working`.`ID`
AND
`working_2`.`ESTIMID` = `working`.`ESTIMID`
)
WHERE `working`.`ANALYST` != '':计算返回max()的次数的正确方法是什么?
谢谢。
发布于 2014-12-24 18:13:16
您正在选择2列,并试图将它们插入其中一列--这是行不通的
我想你可以通过以下方式解决这个问题:
UPDATE `working` SET `NO_TOP_RATING` =
(SELECT COUNT(*) FROM `working_2`
WHERE `IRECCD` = (
select MAX(`IRECCD`) FROM `working_2`
WHERE
`working_2`.`ANNDATS_CONVERTED` >= DATE_SUB(`working`.`ANNDATS_CONVERTED`,INTERVAL 1 YEAR)
AND
`working_2`.`ID` != `working`.`ID`
AND
`working_2`.`ID` != `working`.`ID`
AND
`working_2`.`ESTIMID` = `working`.`ESTIMID`
)
)
WHERE `working`.`ANALYST` != ''发布于 2014-12-24 18:57:17
我认为使用order by和limit更简单
UPDATE `working` w
SET `NO_TOP_RATING` = (SELECT COUNT(*)
FROM working_2 w2
WHERE w2.`ANNDATS_CONVERTED` >= DATE_SUB(w.`ANNDATS_CONVERTED`, INTERVAL 1 YEAR) AND
w2.`ID <> w.`ID`
w2.`ESTIMID` = w.`ESTIMID`
GROUP BY IRECCD
ORDER BY IRECCD DESC
LIMIT 1
)
WHERE w.`ANALYST` <> '';https://stackoverflow.com/questions/27640734
复制相似问题