使用一个sql查询输出到另一个

时间:2013-05-03 19:57:07

标签: sql jdbc

我在单行中有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

但没有奏效。 有人可以帮忙吗? 感谢。

2 个答案:

答案 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

希望这有帮助......干杯!