У меня есть две таблицы с столбцом с именем no_id, я хочу проверить, что значения в обоих столбцах на таблицах одинаковы.Сравните суммы двух столбцов в sql
Так что я пытаюсь суммировать значения обоих столбцов и сравнивать результат.
SELECT
CASE
WHEN SUM (cast(a.no_id as bigint)) = SUM(cast(b.no_id as bigint)) THEN 'YES'
ELSE 'NO'
END as no_id
FROM table_a as a
,table_b as b
Результат запроса НЕТ, но когда я выбираю каждую сумму:
SELECT
SUM (cast(a.no_id as bigint)),
SUM(cast(b.no_id as bigint))
FROM table_a as a
,table_b as b
я получил два аннулирует, по одному в каждой колонке. Вместо сумм столбцов.
Я должен сделать это с другими двадцатью столбцами обеих таблиц.
no_id - это varchar (16) в обеих таблицах.
------ ОБНОВЛЕНИЕ ------
no_id содержит только числовые строки, я следующий запрос, чтобы гарантировать, что нуль будет рассматриваться как 0:
SELECT
SUM(cast(ISNULL(a.no_id,0) as bigint)),
SUM(cast(ISNULL(b.no_id,0) as bigint))
FROM table_a as a
,table_b as b
Но я получаю тот же результат.
Если я выбираю результат только одной таблицы, он работает, я получаю результат суммы:
SELECT
SUM(cast(ISNULL(a.no_id,0) as bigint))
FROM table_a as a
Тогда, почему он не работает с обеими таблицами?
no_id - это varchar (16), как вы можете просто добавить и добавить? Вы уверены, что no_id содержит только числовые строки? – IndoKnight
no_id одинаково в обоих таблицах? Могут ли они объединиться no_id? –
@IndoKnight, если 'no_id' не содержит числовой строки, запрос на трансляцию и, следовательно, запрос не будут выполнены. –