将2个SQL查询组合在一起并将结果集合在一起

W A*_*E Y 28 sql

我是SQL查询的新手.

我有2个查询返回2个结果集,查询返回正确的输出.

如何将这两个查询合并为一个,以便我可以获得一个结果集?

查询1:

SELECT SUM(Fdays) AS fDaysSum From tblFieldDays WHERE tblFieldDays.NameCode=35 AND tblFieldDays.WeekEnding=?
Run Code Online (Sandbox Code Playgroud)

查询2:

SELECT SUM(CHdays) AS hrsSum From tblChargeHours WHERE tblChargeHours.NameCode=35 AND tblChargeHours.WeekEnding=?
Run Code Online (Sandbox Code Playgroud)

谢谢.

Wil*_* Pt 50

您可以在选择查询http://sqlfiddle.com/#!2/ca27b/1中对查询和选择它们进行别名化

SELECT x.a, y.b FROM (SELECT * from a) as x, (SELECT * FROM b) as y
Run Code Online (Sandbox Code Playgroud)


Lam*_*mak 9

你可以使用CROSS JOIN:

SELECT *
FROM (  SELECT SUM(Fdays) AS fDaysSum 
        FROM tblFieldDays 
        WHERE tblFieldDays.NameCode=35 
        AND tblFieldDays.WeekEnding=1) A -- use you real query here
CROSS JOIN (SELECT SUM(CHdays) AS hrsSum 
            FROM tblChargeHours 
            WHERE tblChargeHours.NameCode=35 
            AND tblChargeHours.WeekEnding=1) B -- use you real query here
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您希望它们在同一行中,您还可以使用 CTE 来获取您想要的信息组并将它们连接在一起。示例,取决于您使用的 SQL 语法,这里:

WITH group1 AS (
  SELECT testA
    FROM tableA
),
group2 AS (
  SELECT testB
    FROM tableB 
)
SELECT *
  FROM group1
  JOIN group2 ON group1.testA = group2.testB --your choice of join
;
Run Code Online (Sandbox Code Playgroud)

您可以根据要提取的数据决定需要哪种 JOIN,并确保在从中获取信息的组中具有相同的字段,以便将其全部放入一行中。如果您有多个列,请确保正确命名它们,以便您知道哪个是哪个。此外,出于性能考虑,CTE 是要走的路,而不是内联 SELECT 等。希望这可以帮助。