Naren madi Ответов: 1

Хотите вычесть два столбца из двух таблиц с разными базами данных


Привет Ребята,

Я хочу вычесть два столбца из двух разных таблиц базы данных. Например

DB1,TB1, Column 1
DB2, TB2, Column 2

хотите вычесть column 1 - column 2- Я пытаюсь это сделать

я получаю ошибку, не могли бы вы мне помочь

Что я уже пробовал:

Select tb1.column1, tb2.column1,
tb1.column1 - tb2.column1 AS calculation
FROM DB1.tb1 INNER JOIN DB2.TB2
ON tb1.column1 = tb2.column1

MadMyche

В чем же ошибка?
Я могу сказать вам, что написанный вами SQL теоретически всегда будет вычисляться до 0 на основе внутреннего соединения столбцов, используемых в вычислении

1 Ответов

Рейтинг:
0

Wendelius

Если базы данных находятся в одном экземпляре SQL Server, но в разных базах данных, то при ссылке на таблицу необходимо использовать трехкомпонентное именование.
[имя базы данных].[схема].[имя таблицы]
Если схема dbo, вам не нужно ее указывать. В противном случае обычно требуется схема.

Таким образом, учитывая, что схема является dbo, ваш пример запроса может выглядеть примерно так

SELECT t1.column1, t2.column1, t1.column1 - t2.column1 AS calculation
FROM          DB1..TB1 t1 
   INNER JOIN DB2..TB2 t2 ON t1.column1 = t2.column1


Naren madi

Вы имеете в виду t1&t2 как таблицы?
а ТБ1 и ТБ2 как ??
DB1 &DB2 как база данных??

Не могли бы Вы уточнить?.

Wendelius

Нет, t1-это псевдоним для таблицы. Псевдоним обычно используется только для удобства при обращении к таблице. Взгляните на это Псевдонимы SQL[^]

BD1-это имя базы данных, а TB1-имя таблицы, как и в вашем примере. Разница заключается в том, что между именем базы данных и именем таблицы есть две точки. Если бы схема была указана она выглядела бы примерно так

...
ИЗ ДАННЫХ DB1.ДБО.ТВ1 Т1
...