我在单行中有2个SQL查询,如下所示:
SELECT * FROM (SELECT NameCode,Name FROM tblNames) AS X, (SELECT SUM(Mo+Tu) FROM tblFieldDays WHERE tblFieldDays.NameCode =36)
第一个查询,即(SELECT NameCode,Name FROM tblNames)给出了一个用户列表。 现在我想计算第一次查询生成的每个用户的Mo + Tu之和,即SUM(Mo + Tu)。
即。我想提供在第一个查询中生成的NameCode,而不是当前的36值,静态只是例如
我也尝试使用IN语句如下:
SELECT * FROM (SELECT NameCode,Name FROM tblNames) AS X, (SELECT SUM(Mo+Tu) FROM tblFieldDays WHERE tblFieldDays.NameCode IN (X.NameCode)) AS Y
但没有奏效。 有人可以帮忙吗? 感谢。
答案 0 :(得分:1)
SELECT NameCode,
Name,
UserFieldDays = SUM(fieldDays.Mo + fieldDays.Tu)
FROM tblNames users
JOIN tblFieldDays fieldDays ON users.NameCode = fieldDays.NameCode
GROUP BY users.NameCode, users.Name
答案 1 :(得分:0)
这可能就是你要找的东西:
SELECT NameCode, Name,
(SELECT SUM(MO + TU)
FROM tblFieldDays Y
WHERE Y.NameCode IN (X.NameCode))
FROM tblNames X;
此语句从表tblNames中选择所有名称和代码,并使用子选择添加总和。
查看this Fiddle。
希望这有帮助......干杯!