jak sie ma tak zorganizowane dane to trzeba kombinować, sposobów jest kilka:
#1
Select
nazwa
,data
,nr
,typ_platnika
,nr_platnika
,kwota
,tytulem
from
dokument_finansowy as df
inner join kontrahent k on k.id_kontrhenta=df.nr_platnika and df.typ_platnika = 'k'
union all
Select
imie + ' ' + nazwisko nazwa
,data
,nr
,typ_platnika
,nr_platnika
,kwota
,tytulem
from
dokument_finansowy as df
inner join pracownik p on p.id_pracownika=df.nr_platnika and df.typ_platnika = 'p'
#2
Select
nazwa
,data
,nr
,typ_platnika
,nr_platnika
,kwota
,tytulem
from
dokument_finansowy as df
inner join (select
'k' as typ_platnika
,id_kontrahenta id
,nazwa
from
kontrahent
union all
'p'
,id_pracownika
,imie + ' ' +nazwisko
from
pracownik) k on k.id=df.nr_platnika and df.typ_platnika = k.typ_platnika
#3
Select
case when typ_planika = 'k' then k.nazwa else p.imie + ' ' + nazwisko end nazwa
,data
,nr
,typ_platnika
,nr_platnika
,kwota
,tytulem
from
dokument_finansowy as df
left join kontrahent on k.id_kontrahenta=df.nr_platnika and df.typ_platnika = 'k'
left join pracownik p on p.id_pracownika=df.nr_platnika and df.typ_platnika = 'p'
Ja bym szedł w 3 rozwiązanie