我是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)
你可以使用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 等。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
143299 次 |
| 最近记录: |