2013-09-23 69 views
0

我完全不熟悉數據庫的SQL Server部分。我創建了一個分離的Access數據庫,運行良好。Upsize訪問後端到SQL Server - 查詢問題

作爲一項測試,我將表升爲SQL服務器。大部分情況一切順利;但是,我的兩個查詢不再有效。他們都是相當複雜的聯合查詢。我相信工會是我的問題的罪魁禍首。

與第一個我有兩個查詢使用union all。他們單獨工作,但是當我使用聯合查詢時,我收到錯誤「對象無效或不再設置」。

隨着第二個我有3個查詢union all。這些比第一種情況更簡單。這次我收到錯誤「表達式輸入錯誤,或者它太複雜,無法評估。」

是否有關於在SQL服務器上使用表進行聯合查詢的具體內容?任何幫助或建議表示讚賞。

SELECT scrap.coilnum, Sum(scrap.lnff) AS sumoflnff, scrap.code, scrap.location 
FROM scrap 
WHERE scrap.day>=[Forms]![coilparameters]![Text0] And scrap.day<=[Forms]![coilparameters]![Text2] and scrap.productionline=[Forms]![coilparameters]![combo4] and scrap.coilnum<>0 
GROUP BY scrap.coilnum, scrap.code, scrap.location; 
union all 
SELECT sawscrap.tcoilnum, Sum(sawscrap.length) AS sumoflnff, sawscrap.code, sawscrap.location 
FROM sawscrap 
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.tcoilnum is not null and sawscrap.tcoilnum<>0 
GROUP BY sawscrap.tcoilnum, sawscrap.code, sawscrap.location; 
UNION ALL 
SELECT sawscrap.bcoilnum, Sum(sawscrap.length) AS sumoflnff, sawScrap.code, sawscrap.location 
FROM sawscrap 
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.bcoilnum is not null and sawscrap.bcoilnum<>0 
GROUP BY sawscrap.bcoilnum, sawscrap.code, sawscrap.location; 

還有第二個。

+0

你能提供給出錯誤的SQL嗎?在SQL Server中的Union和Union All並不特殊。很簡單。 – Steve

+0

除了表格本身之外,一切仍然處於Access狀態。 – jpw2007

回答

0

這些類型的錯誤的在Access UNION查詢的通常原因是每個SELECT列和其他SELECT語句(多個)在相同的位置的列(多個)之間的數據類型不匹配。

在你的情況,是scrap.coilnum,sawscrap.tcoilnumsawscrap.bcoilnum的數據類型是否一樣?其他專欄呢?如果不是,則可能需要使用轉換功能(例如CStrCLng)才能使它們都屬於同一類型。

查看this瞭解更多信息。

+0

他們是一樣的。完全相同的聯合查詢在表格處於Access後端時正常工作。升級到SQL Server時,會顯示錯誤。 – jpw2007

+0

你在正確的道路上。問題不在於三個線圈號碼具有不同的字段類型,而是它與我使用的參數不同的數據類型。謝謝您的幫助! – jpw2007