У меня есть приведенный ниже запрос с несколькими объединениями. Последние 3 объединения необходимы для получения значения g.fin_id. Это работает отлично (см. Результаты), НО, поскольку некоторые записи в таблице ACCUM_ISS_CHAR_HIST имеют значения e.char9_nme, равные NULL, это исключает записи в результатах в целом. Таким образом, создается впечатление, что когда значение e.char9_nme имеет запись, оно выдаст результат, но как только оно получит значение Null, оно будет исключено. Я все еще хотел бы видеть записи, даже если g.fin_id для них будет пустым, поскольку они имеют значение e.char9_nme, равное Null. Как мне изменить запрос, чтобы выполнить это?
select
a.acct_id,
c.fld3_txt,
b.issue_loc1_cde,
b.instr_id,
a.fld1_nme,
b.issue_cls2_nme,
g.fin_id,
e.char9_nme
from position_dg as a
inner join
infoportal..issue_dg as b on b.INSTR_ID = a.INSTR_ID
inner join
InfoPortal..IVW_ACCT as c on a.acct_id = c.acct_id
inner join
InfoPortal..DW_AcctCharDG as d on a.acct_id = d.acctid
inner join
ACCUM_ISS_CHAR_HIST as e on a.instr_id = e.instr_id
inner join
MD_FINANCIAL_ENTITY as f on e.char9_nme = f.fin_enty_name
inner join md_FINANCIAL_ENTITY_ALTERNATE_IDENTIFIER as g on
f.fin_enty_id = g.fin_enty_id
and b.MAT_EXP_DTE > getdate()
and b.issue_cls1_nme = 'Derivatives'
and a.as_of_tms >= getdate()-1
and b.iss_typ in ('FFX','IRS','EQF')
and d.AcctChrSetId = 'DerivativeRpt'
and d.EndTms IS NULL
and a.acct_id = 'FOGEMBLCR'
and g.id_ctxt_typ = 'LEGAL_ENTITY_IDENTIFIER'
and e.as_of_dte = (
select MAX (as_of_dte)-1
from accum_iss_char_hist
)
Я ожидаю, что результаты покажут записи fin_id для некоторых пустых записей fin_id для некоторых, но на данный момент толькоте, у которых есть запись fin_id, оставлены на месте, а остальные исключены из результатов.