获取具有不同条件的同一列的总和
Get sum of same column with different conditiong
我正在努力减轻查询的负担,并尝试通过优化查询来最大程度地减少查询量,因此我想将两个查询合二为一。
SELECT SUM(iAmount) as `shares`,
(SELECT SUM(iAmount)
FROM `investments`
WHERE `iUser = 1
AND DATE(`iTime`) = CURDATE()) as `shares_today`
FROM `investments` WHERE `iUser` = 1
这不起作用,我做错了什么?
您在 iUser
之后缺少反引号。
但无论如何,这里不需要子查询:
SELECT SUM(`iAmount`) as `shares`,
SUM(IF(DATE(`iTime`) = CURDATE(), `iAmount`, 0)) as `shares_today`
FROM `investments`
WHERE `iUser` = 1;
我正在努力减轻查询的负担,并尝试通过优化查询来最大程度地减少查询量,因此我想将两个查询合二为一。
SELECT SUM(iAmount) as `shares`,
(SELECT SUM(iAmount)
FROM `investments`
WHERE `iUser = 1
AND DATE(`iTime`) = CURDATE()) as `shares_today`
FROM `investments` WHERE `iUser` = 1
这不起作用,我做错了什么?
您在 iUser
之后缺少反引号。
但无论如何,这里不需要子查询:
SELECT SUM(`iAmount`) as `shares`,
SUM(IF(DATE(`iTime`) = CURDATE(), `iAmount`, 0)) as `shares_today`
FROM `investments`
WHERE `iUser` = 1;