我是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=? "
感谢。
答案 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个查询作为单个查询加入
显示以下查询
nsc =案件性质
报告每月06日报告
(月度报告将从上个月的第05个月到当月的第05个月计算)