将两个SQL查询的结果合并为单独的列

将两个SQL查询的结果合并为单独的列,sql,Sql,我有两个查询返回单独的结果集,并且这些查询返回正确的输出 如何将这两个查询合并为一个查询,以便在单独的列中获得每个结果的单个结果集 问题1: 从tblFieldDays中选择SUMFdays作为fDaysSum,其中tblFieldDays.NameCode=35和tblFieldDays.WeekEnding=? 问题2: 从tblChargeHours中选择SumcDays作为hrsSum,其中tblChargeHours.NameCode=35,tblChargeHours.WeekEnd

我有两个查询返回单独的结果集,并且这些查询返回正确的输出

如何将这两个查询合并为一个查询,以便在单独的列中获得每个结果的单个结果集

问题1:

从tblFieldDays中选择SUMFdays作为fDaysSum,其中tblFieldDays.NameCode=35和tblFieldDays.WeekEnding=? 问题2:

从tblChargeHours中选择SumcDays作为hrsSum,其中tblChargeHours.NameCode=35,tblChargeHours.WeekEnding=? 谢谢。

您可以使用交叉连接:


您可以在“选择查询”中对查询和选择这两个查询使用别名


如何将4个查询合并为单个查询

显示以下查询

未决案件总数+2.基于sysdate本月提交的案件总数+案件总数1+2+已处理案件数,其中nse=已处理案件数+除nse已处理案件外的未决案件数 nsc=案件性质

每月6日进行报告


月报将从上个月的第05个月开始计算到本月的第05个月开始

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

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

选择SUM+Fdays+作为fDaysSum,SUM+CHdays+作为hrsSum?是否要选择?也许你可以展示一些示例数据和所需的输出。@DavidStarkey我用同样的方法尝试过,但我不知道如何为不同的数据给出不同的where条件DB@TimLehner我需要工会。我尝试了Query_1 UNION ALL Query_2,但结果集给出了2行1列,而不是我想要的2列和1行,即在sible rs中的两个值。下一次调用。@user1614217那么你不需要UNION,你需要交叉联接。起初我想知道这是否是个玩笑,但是,如果查询总是只返回一行,那么这是一个解决方案。显然,它只返回聚合,OP不介意将这些参数放入两次。@TimLehner这里不是开玩笑。即使我看到派生表返回一行,我应该澄清一下,这是因为it@TimLehner它给了我一个错误,上面说FROM子句中的Synatx Error是我的代码:字符串t1=SELECT*+FROM SELECT SUM+Fdays+AS fDaysSum+FROM tblFieldDays+其中tblFieldDays.NameCode=35和tblFieldDays.WeekEnding=?+交叉连接从tblChargeHours中选择SUM+CHdays+作为hrsSum+,其中tblChargeHours.NameCode=35,tblChargeHours.WeekEnding=@user1614217可能是第一个查询的别名,我在那里没有空格。现在试试我的更新版answer@Lamak同样的问题,事实上我之前做过间隔的事情,我还有一个问题。考虑到我从第一个查询中获取值作为x,并且我需要使用查询2中的一个值,它是如何完成的?你可以把选择。。。作为X到您的新查询,并使用它作为别名X.a.的参数,或者如果它在PHP上的不同行,考虑存储您需要的值的结果,并且当它在PHPI上释放您的SQL查询时使用它作为参数,并且尝试它给了我错误:参数太少,您可以用当前查询更新您的问题吗?错误呢?在同一条线上。我试图将其用作别名,但它给了我一个错误:参数太少
SELECT x.a, y.b FROM (SELECT * from a) as x, (SELECT * FROM b) as y
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
;