Я смоделировал несколько таблиц и запрос, чтобы посмотреть, нужно ли вам это.
create table CONTRACT(ConKey int, ConName varchar(20));
insert into CONTRACT(ConKey, ConName) Values(1, 'AAA');
insert into CONTRACT(ConKey, ConName) Values(2, 'BBB');
insert into CONTRACT(ConKey, ConName) Values(3, 'CCC');
create table VDC(VDCKey int, StatusWork varchar(20));
insert into VDC(VDCKey, StatusWork) Values(1, 'Status 1');
insert into VDC(VDCKey, StatusWork) Values(3, 'Status 2');
insert into VDC(VDCKey, StatusWork) Values(4, 'Status 3');
create table VDE(VDEKey int, StatusWork varchar(20));
insert into VDE(VDEKey, StatusWork) Values(1, 'Status 4');
insert into VDE(VDEKey, StatusWork) Values(3, 'Status 5');
insert into VDE(VDEKey, StatusWork) Values(4, 'Status 6');
create table RCK(RCKKey int, StatusWork varchar(20));
insert into RCK(RCKKey, StatusWork) Values(5, 'Status 7');
insert into RCK(RCKKey, StatusWork) Values(2, 'Status 8');
insert into RCK(RCKKey, StatusWork) Values(1, 'Status 9');
Вот запрос: -
Select c.ConKey, c.ConName, dc.StatusWork, de.StatusWork, r.StatusWork
from CONTRACT c
LEFT JOIN VDC dc ON dc.VDCKey = c.ConKey
LEFT JOIN VDE de on de.VDEKey = c.ConKey
LEFT JOIN RCK r on r.RCKKey = c.ConKey;
Это результат: -
ConKey ConName StatusWork StatusWork StatusWork
1 AAA Status 1 Status 4 Status 9
2 BBB Status 8
3 CCC Status 2 Status 5