2015-05-05 3 views
-1

У нас есть две системы, которые продают разные типы предметов. Мы хотим отображать клиентов с ТОЛЬКО счетами в Sandbox1, по сравнению с теми, что в Sandbox2. Я использовал WHERE NOT EXISTS, но я не уверен, что он работает правильно. Я получаю сообщение об ошибке при попытке запустить его: Ошибка конверсии при преобразовании значения nvarchar 'MSTO15' в тип данных int. Поэтому я не уверен, что вызывает это, или если я нахожусь на правильном пути с моим запросом.SQL Query Not There

Любая помощь будет оценена по достоинству.

SELECT [Account #], Accounts, [Prior Annual], [Prior Annual1], [Prior Annual2] 
FROM Sandbox1.dbo.SalesHistory as s 
WHERE NOT EXISTS 
    (SELECT * 
    FROM Sandbox2.dbo.customer_master as m 
    WHERE s.[Account #] = 
      m.customer_number) 
+0

Можете ли вы поделиться некоторыми выборочные данные и результат вы хотите достичь, пожалуйста? – Mureinik

+1

Что такое типы данных s. [Account #] и m.customer_number? На основании сообщения об ошибке кажется, что это INTEGER, а другой CHAR ... – dnoeth

+0

Один из них - int, а другой - varchar –

ответ

1
SELECT [Account #], Accounts, [Prior Annual], [Prior Annual1], [Prior Annual2] 
FROM Sandbox1.dbo.SalesHistory as s 
WHERE NOT EXISTS 
    (SELECT * 
    FROM Sandbox2.dbo.customer_master as m 
    WHERE convert(nvarchar,s.[Account #]) = 
      convert(nvarchar,m.customer_number)) 
0

Попробуйте это:

SELECT [Account #], Accounts, [Prior Annual], [Prior Annual1], [Prior Annual2] 
FROM Sandbox1.dbo.SalesHistory as s 
where s.[Account #] not in (select [Account #] from Sandbox2.customer_master)