我有两个SQL查询,第一个是:
select Activity, SUM(Amount) as "Total Amount 2009"
from Activities, Incomes
where Activities.UnitName = ? AND
Incomes.ActivityId = Activities.ActivityID
GROUP BY Activity
ORDER BY Activity;
Run Code Online (Sandbox Code Playgroud)
第二个是:
select Activity, SUM(Amount) as "Total Amount 2008"
from Activities, Incomes2008
where Activities.UnitName = ? AND
Incomes2008.ActivityId = Activities.ActivityID
GROUP BY Activity
ORDER BY Activity;
Run Code Online (Sandbox Code Playgroud)
(不要介意'?',它们代表birt中的参数).我想要实现的目标如下:我想要一个返回与第一个查询相同的SQL查询,但是有一个额外的(第三个)列,看起来与"Total Amount 2008"完全相同(来自第二个查询).
Lia*_*iam 47
一些DBMS支持FROM (SELECT ...) AS alias_name语法.
将您的两个原始查询视为临时表.您可以像这样查询它们:
SELECT t1.Activity, t1."Total Amount 2009", t2."Total Amount 2008"
FROM (query1) as t1, (query2) as t2
WHERE t1.Activity = t2.Activity
Run Code Online (Sandbox Code Playgroud)
Qua*_*noi 16
SELECT Activity, arat.Amount "Total Amount 2008", abull.Amount AS "Total Amount 2009"
FROM
Activities a
LEFT OUTER JOIN
(
SELECT ActivityId, SUM(Amount) AS Amount
FROM Incomes ibull
GROUP BY
ibull.ActivityId
) abull
ON abull.ActivityId = a.ActivityID
LEFT OUTER JOIN
(
SELECT ActivityId, SUM(Amount) AS Amount
FROM Incomes2008 irat
GROUP BY
irat.ActivityId
) arat
ON arat.ActivityId = a.ActivityID
WHERE a.UnitName = ?
ORDER BY Activity
Run Code Online (Sandbox Code Playgroud)
cgr*_*eno 11
我只想使用联盟
在第二个查询中添加额外的列名称,并''在其他查询中的所有相应位置添加
例
//reverse order to get the column names
select top 10 personId, '' from Telephone//No Column name assigned
Union
select top 10 personId, loanId from loan
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176862 次 |
| 最近记录: |