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

时间:2013-05-03 17:03:33

标签: sql

我是SQL查询的新手。

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

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

查询1:

"SELECT SUM("+Fdays+")AS fDaysSum From tblFieldDays WHERE tblFieldDays.NameCode=35 AND tblFieldDays.WeekEnding=?"

查询2:

SELECT SUM("+CHdays+") AS hrsSum From tblChargeHours WHERE tblChargeHours.NameCode=35 AND tblChargeHours.WeekEnding=? "

感谢。

4 个答案:

答案 0 :(得分:48)

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

SELECT x.a, y.b FROM (SELECT * from a) as x, (SELECT * FROM b) as y

答案 1 :(得分:8)

您可以使用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

答案 2 :(得分:3)

如果您希望将它们放在同一行,您还可以使用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
;

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

答案 3 :(得分:-1)

如何将4个查询作为单个查询加入

显示以下查询

  1. 本月提交的案件总数+ 2.cases(基于sysdate)+案件总数(1 + 2)+否。案件处理nse = dispos + no。等待案件(除了nse<>处置)
  2. nsc =案件性质

    报告每月06日报告

    (月度报告将从上个月的第05个月到当月的第05个月计算)