在MS QUERY SQL中使用'AS'语句'UNION ALL'

在MS QUERY SQL中使用'AS'语句'UNION ALL'

问题描述:

我的公司具有双重公司结构,要求数据保持分开。我们有两个结构相同的数据集。我通常使用MS Query使用一个数据集编写SQL,当我有我想要的内容时,我只需添加一个UNION ALL语句并重复SQL,但用第二个数据集替换所有数据集名称。它始终工作正常tp给我一个结合来自两个数据集的数据的查询。在MS QUERY SQL中使用'AS'语句'UNION ALL'

但是,我使用datepart函数检索一些日期字段以获取记录的年份和月份,并且我使用AS语句来命名列。 示例:选择datepart(yyyy,receipttdate)作为“Year”

尽管它在具有一个数据集的原始查询中工作,但在创建'UNION ALL'并添加其他SQL时,列名变为空白。对于我总结和重命名的一些字段,其名称比SUM(QUANTITY_ORDERED)更简洁 - 它们在UNION ALL后变为空白。

在使用UNION ALL或其他建议时重新命名列是否有技巧?

谢谢, 马克

如果你指的是SQL SERVER(我真的不知道MS-查询是什么),那么它应该是你的列别名在联盟的第一个语句完成

例如下面的第一个例子将列名留空,而第二个例子提供正确的列名;

-- Example 1 
Select datepart(yyyy,CURRENT_TIMESTAMP) 
UNION ALL 
SELECT datepart(yyyy,DATEADD(YY, -1, CURRENT_TIMESTAMP)) as "Year" 

-- Example 2 
Select datepart(yyyy,CURRENT_TIMESTAMP) as "Year" 
UNION ALL 
SELECT datepart(yyyy,DATEADD(YY, -1, CURRENT_TIMESTAMP))