Procedura-FirmNACEOwnTurnoverFirmCount

Parametry:

NázevPopisDatový typ
InnaceidChar(10)
InfirmselidChar(10)
WithemployeecountChar(1)

Návratové hodnoty:

NázevPopisDatový typ
idChar(10)
nace_idChar(10)
nace_codeChar(6)
totalamountNumeric(15, 2)
firmcountInteger
sumemployeecountInteger

Tělo:

begin
  NACE_ID = INNACEID;
  select
    Code
  from
    Nace N
  where
    N.ID = :InNaceid
  into
    :NACE_Code;
  if (:withemployeecount in ('1','A')) then
  begin
    select
      Sum(C.MeanValue) as TotalAmount,
      Count(A.ID) as FirmCount,
      Sum(E.MeanValue) as SumEmployeeCount
    from
      Firms A
      join Nace N on N.ID = A.MainNACECode_ID
      join FinancialCategories C on A.TurnOver_ID = C.ID
      join EmployeeCountCategories E on A.EmployeeCount_ID = E.ID
    where
      A.Hidden = 'N' and
      A.MainNACECode_ID = :InNACEID and
      (
        (A.ID in (select OBJ_ID from SELDAT where SEL_ID = :InFirmSelID)) or
        (
          ((:InFirmSelID = '') or (:InFirmSelID is null)) and
          ((A.Firm_ID = '') or (A.Firm_ID is null))
        )
      ) and
      (A.EmployeeCount_ID is not null) and
      (A.TurnOver_ID is not null)
    into
      :TotalAmount,
      :FirmCount,
      :SumEmployeeCount;  
  end
  else
  begin
    select
      Sum(C.MeanValue) as TotalAmount,
      Count(A.ID) as FirmCount
    from
      Firms A
      join Nace N on N.ID = A.MainNACECode_ID
      join FinancialCategories C on A.TurnOver_ID = C.ID
    where
      A.Hidden = 'N' and
      A.MainNACECode_ID = :InNACEID and
      (
        (A.ID in (select OBJ_ID from SELDAT where SEL_ID = :InFirmSelID)) or
        (
          ((:InFirmSelID = '') or (:InFirmSelID is null)) and
          ((A.Firm_ID = '') or (A.Firm_ID is null))
        )
      )
    into
      :TotalAmount,
      :FirmCount;    
  end
  suspend;
end

Generated by ABRA Software a.s. 27.10.2021 16:34:55