2014-12-11 36 views
0

我的公司具有雙重公司結構,要求數據保持分開。我們有兩個結構相同的數據集。我通常使用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或其他建議時重新命名列是否有技巧?

謝謝, 馬克

回答

0

如果你指的是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))