2014-05-25 35 views
1

當我嘗試運行此sql時,我收到消息「連接表達式中的數據類型不匹配」。連接表達式中的數據類型不匹配

SELECT oldtable.name, oldtable.number, newtable.number 
FROM oldtable, newtable 
WHERE (([oldtable].[number]=[newtable].[number])); 

我想比較兩個表中的數字和所有那些相同的添加適當的名字。 有人可以幫助我嗎?

+0

你能告訴你的表定義?看起來兩個表中的「數字」字段與錯誤消息的數據類型不同。另外我會考慮使用'join'語法。 – sgeddes

回答

0

的優選的句法將是使用join

SELECT OT.name, OT.number, NT.number 
FROM oldtable OT 
    INNER JOIN newtable NT ON OT.[number] = NT.[number] 

但作爲消息說字段你必須是這可能意味着你必須執行convertcast操作相同類型的執行JOIN操作在這些列的一個或兩個上。

請發表您的表定義,所以我可以給出一個確切的答案,但一個實例的值轉換爲兩個加盟整數列如下:

SELECT OT.name, OT.number, NT.number 
    FROM oldtable OT 
    INNER JOIN newtable NT ON CAST(OT.[number] AS INT) = CAST(NT.[number] AS INT) 
相關問題