The field dolzhn_atest.KOD_C contains many lines, but there is only one match with the field kdpr.KDNSLP. As a result, one line is displayed, but you need to display everything. I can not understand the hour, I tried the left join, it did not help.
select kdpr.N_KDK, --табельный номер ltrim(rtrim(kdpr.fam))+' '+ltrim(rtrim(kdpr.nam))+ ' ' +ltrim(rtrim(kdpr.otch)) as FIO, --ФИО slp.NSLP, --Должность dolzhn_atest.NAIM as Doljnost_po_atest, -- Должн по асестац. kategor.NAIM as Kategor, --категория KDK.GR_INVA --инвалидность from kdpr inner join dbo.SLP on KDPR.KSLP = slp.KSLP inner join dbo.sp2 as dolzhn_atest on dolzhn_atest.KOD_C = kdpr.KDNSLP inner join dbo.sp2 as kategor on kategor.KOD_C = kdpr.KK36 inner join dbo.KDK on KDK.N_KDK = KDPR.N_KDK where dolzhn_atest.spr = 'dnslp' and kategor.SPR='k36'