Я делаю внешнее соединение двух таблиц рыночных данных.Обе таблицы имеют объем торгов, сообщаемый по-разному, поэтому мне нужно запрашивать их отдельно, а затем суммировать результаты.
Проблема в том, что второй запрос относится к условию торговли, которое случается не часто и поэтому иногда не дает результата.Таким образом, c.volume имеет значение, а md.volume имеет значение null, и в результате добавления я получаю значение NULL.
Как сделать так, чтобы оно рассматривало ноль как 0?
select
c.the_time, c.symbol, c.volume + md.volume
from
-- These are single shares
(select
(time_stamp / 100000) as the_time, symbol,
sum(size) as volume
from
[20160510]
where
price_field = 0
and (size > 0
and tradecond != 0)
group by
(time_stamp / 100000), symbol) as c
full outer join
(select
d.the_time, d.symbol, d.volume as volume
from
-- These are single shares when multiplied by -1
(select
(time_stamp / 100000) as the_time, symbol, sum(size) * -1 as volume
from
[20160510]
where
price_field = 0
and size < 0
group by
(time_stamp / 100000), symbol) as d) as md on md.the_time = c.the_time
and md.symbol = c.symbol