我使用此查询来计算值: -
SELECT (SELECT count(u.`refered`) FROM user u WHERE u.refered = user.user_id
and launch=1) as coun, user_id FROM user HAVING coun > 0
但我想在每个计数中添加静态值,如此查询: -
SELECT (SELECT count(u.`refered`),sum(25) FROM user u WHERE u.refered = user.user_id
and launch=1) as coun, user_id FROM user HAVING coun > 0
但是这没有用:(请告诉我哪里错了?
例如: -
我只想在计数得到结果8然后我在每个计数中得到计数8加上4值然后我想回答32.这是我想要的。
答案 0 :(得分:0)
SELECT (SELECT count(u.`refered`) + 25 FROM user u WHERE u.refered = user.user_id
and launch=1) as coun, user_id FROM user HAVING coun > 0
答案 1 :(得分:0)
您不能在SELECT
子句中的一个子查询中选择两列。所以将其移到FROM
子句:
SELECT
u.coun,
u.sum25,
user.user_id
FROM user
LEFT JOIN
(
SELECT
refered,
count(*) as coun,
sum(25) as sum25
FROM user
WHERE launch=1
GROUP BY refered
) u on u.refered = user.user_id
HAVING u.coun > 0;
更新:您已添加
我只是想当计数得到结果8然后我想在每个计数中的计数8添加4值然后我想要回答32.这是我想要的。
你的问题。因此,您不希望在原始查询中sum(25)
,即count(*) * 25
,但似乎count(*) * 4
。所以在我的查询中用25替换25。
答案 2 :(得分:0)
您无法在一个子选择中返回两个值。您可以使用两个子选择,但最好的解决方案是使用这样的自连接:
s.showThis = function(obj) {
//Hides all
angular.forEach(s.obj, function(ob) {
if(ob.name != obj.name) {
ob.show = false;
}
});
//Toggles current object show/hide
obj.show = !obj.show;
}