Třídová akce

Popis:
Vrátí seznam schválených firem. Schválený dodavatel je takový, který je schválen alespoň pro jednu oblast hodnocení. Pokud dodavatel nemá záznam o hodnocení a má předchůdce, zkontroluje se, zda-li jsou schváleni jeho všichni předchůdci pro alespoň jednu oblast.
Kód:
3
Tělo:
SELECT F.ID AS Firm_ID -- Schválení dodavatelé
FROM Firms F
JOIN ApprovedSuppliers S ON S.Firm_ID = F.ID
WHERE 
  F.Firm_ID IS NULL AND
  S.ValidFromDate$DATE <= :DocDate AND
  S.IsApproved = 'A'
GROUP BY F.ID
UNION
-- Schválení dodavatelé ze schválených předků
SELECT F.ID  AS Firm_ID--, SUM(CASE WHEN S2.IsApproved = 'A' THEN 1 ELSE 0 END), SUM(CASE WHEN S2.IsApproved = 'N' THEN 1 ELSE 0 END) 
FROM Firms F
JOIN Firms F2 ON F2.Firm_ID = F.ID
JOIN ApprovedSuppliers S2 ON F2.ID = S2.Firm_ID
WHERE 
  F.Firm_ID IS NULL AND
  S2.ValidFromDate$DATE <= :DocDate AND
  NOT EXISTS (SELECT ID FROM ApprovedSuppliers S WHERE S.Firm_ID = F.ID AND S.ApprovingArea_ID = S2.ApprovingArea_ID AND S.ValidFromDate$DATE <= :DocDate)
GROUP BY F.ID
HAVING 
  -- Musí být všichni předchůdci schváleni
  SUM(CASE WHEN S2.IsApproved = 'A' THEN 1 ELSE 0 END) > 0 AND 
  SUM(CASE WHEN S2.IsApproved = 'N' THEN 1 ELSE 0 END) = 0 

Generated by ABRA Software a.s. 27.10.2021 16:35:29