Sql 如何返回彼此下方的两个查询的结果

Sql 如何返回彼此下方的两个查询的结果,sql,excel,select,odbc,firebird,Sql,Excel,Select,Odbc,Firebird,我有以下疑问: SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT = '61111' 返回以下结果: 然后我想在它下面添加另一个字段,也是来自一个查询。所以我做了以下几件事 SELECT GLACCOUNTS.ACCOUNT_NAME, (SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS

我有以下疑问:

SELECT GLACCOUNTS.ACCOUNT_NAME
FROM GLACCOUNTS GLACCOUNTS 
WHERE GLACCOUNTS.ACCOUNT = '61111'
返回以下结果:

然后我想在它下面添加另一个字段,也是来自一个查询。所以我做了以下几件事

SELECT
   GLACCOUNTS.ACCOUNT_NAME,
   (SELECT GLACCOUNTS.ACCOUNT_NAME 
    FROM GLACCOUNTS GLACCOUNTS
    WHERE GLACCOUNTS.ACCOUNT = '71111')
FROM
   GLACCOUNTS GLACCOUNTS
WHERE
   GLACCOUNTS.ACCOUNT = '61111'
然后返回以下内容:

实际上,我希望食品成本显示在Room Revenue字段下面。有没有办法做到这一点:


我知道我的查询没有真正意义,因为我可以很容易地将结果作为查询的一部分。但我需要了解在同一查询中相互添加数据的基本原理,因为我需要使用它来组合更大的报表。

您需要的是UNION。 使用UNION,您可以将多个查询添加到一起,只要它们具有相同的列

SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT = '61111'

UNION

SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT = '71111'
编辑: 您可以添加为“nikhil sugandh”建议的“硬编码”的传统标题行


是否确实要将“
帐户名2
”单独列在一行中?是的。我知道它看起来有点奇怪,但它是我需要的更大报告的一部分。硬编码它!!!!!谢谢,这解决了我的问题。我怀疑这是工会的工作,但我一直试图把括号括起来。完美的如果我想在结果之间留一个空格,我该怎么做呢?这里的联合是多余的,因为它相当于一个简单的选择:
select GLACCOUNTS.ACCOUNT\u NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT IN('61111','71111')
。你不是想要一个多标题的行吗,如示例中所述?@RaulSebastian是的,你是对的,这个特殊的标题可以用in来完成,但既然提到他需要它来制作更大的报告,in可能没有工会那么直截了当。对,他的问题不清楚,如果你看一看这个例子,有一个ACCOUNT_NAME2行,这表明他希望标题在行中。使用UNION可以很好地工作,但如果没有ORDER BY,则不能保证对结果进行排序,这意味着他将需要一个额外的列进行排序。@gdekoker但是,您必须考虑到
UNION ALL
UNION DISTINCT
之间的差异,并选择您需要的列
SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT = '61111'

UNION

SELECT 'ACCOUNT_NAME_2' AS ACCOUNT_NAME

UNION

SELECT GLACCOUNTS.ACCOUNT_NAME FROM GLACCOUNTS GLACCOUNTS WHERE GLACCOUNTS.ACCOUNT = '71111'