Написала запрос на SQL, который работает:
Код: Выделить всё
Select Persons.Fio, Persons.Tabnmb, Persons.Appdate, Persons.Disdate
  , Persons.Wprizn2  //1 - Договор, 2 - Гарантийное письмо, 3 - Самостоятельно
  , Ps1.Begdate  
  , Ps1.Enddate  
  , Ps2.Begdate  
  , Ps2.Enddate  
from
  persons
  , HISTPSNDATA Ps1  //для периода статуса молодого специалиста
  , HISTPSNDATA Ps2  //для периода предоставления вычета на молодого специалиста
where
((
   Persons.Nrec       == Ps1.Cbasetable
   and 25001            == Ps1.Wbasetable
   and 4                    == Ps1.Wchoise
   and Persons.Nrec == Ps2.Cbasetable
   and 25001            == Ps2.Wbasetable
   and 5                    == Ps2.Wchoise
))
and ( Persons.Disdate = Date(0,0,0) or Persons.Disdate >= Date(01,01,2024) ) and Persons.Wprizn2 <>0
order external by Persons.Fio
to xlsx D:\1\123.xlsx;
Код: Выделить всё
SQL
Select
  Persons.Fio, Persons.Tabnmb, Persons.Appdate, Persons.Disdate, Persons.Wprizn2
  , case when Persons.Wprizn2 = 1 then 'Договор' else
    case when Persons.Wprizn2 = 2 then 'Гарантийное письмо' else
    case when Persons.Wprizn2 = 3 then 'Самостоятельно' else
    ' ' end end end as "StatusMS"
From
  Persons
Where
  ( Persons.Disdate = #Date(0,0,0) or Persons.Disdate >= #Date(01,01,2024) )
  and ( Persons.Wprizn2 <> 0 )
order by Persons.Fio
to xlsx D:\1\123.xlsx;
Чем не устраивает 1-ый запрос: в нем выводится признак Persons.Wprizn2 , а хотелось бы текстовую расшифровку его значения.