Входные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
BEGDATE  | 
    DATE  | 
    
  | 
  
ENDDATE  | 
    DATE  | 
    
  | 
  
STORAGEID  | 
    INTEGER  | 
    
  | 
  
Выходные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
GRADEDATE  | 
    DATE  | 
    
  | 
  
MEALEXTRA  | 
    NUMERIC(9,2)  | 
    
  | 
  
MEAL1  | 
    NUMERIC(9,2)  | 
    
  | 
  
MEAL2  | 
    NUMERIC(9,2)  | 
    
  | 
  
MEAL3  | 
    NUMERIC(9,2)  | 
    
  | 
  
SEMOLINA  | 
    NUMERIC(9,2)  | 
    
  | 
  
BRAN  | 
    NUMERIC(9,2)  | 
    
  | 
  
WASTE  | 
    NUMERIC(9,2)  | 
    
  | 
  
SUMPRODUCTION  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_MEALEXTRA  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_MEAL1  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_MEAL2  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_MEAL3  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_SEMOLINA  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_BRAN  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_WASTE  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_SUMPRODUCTION  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_FLAKES  | 
    NUMERIC(9,2)  | 
    
  | 
  
BASIS_WASTEUSELES  | 
    NUMERIC(9,2)  | 
    
  | 
  
Описание
(Нет описания для процедуры YIELD_GRAFF_VOLUME)
Определение
CREATE PROCEDURE YIELD_GRAFF_VOLUME(
    BEGDATE DATE,
    ENDDATE DATE,
    STORAGEID INTEGER)
RETURNS (
    GRADEDATE DATE,
    MEALEXTRA NUMERIC(9,2),
    MEAL1 NUMERIC(9,2),
    MEAL2 NUMERIC(9,2),
    MEAL3 NUMERIC(9,2),
    SEMOLINA NUMERIC(9,2),
    BRAN NUMERIC(9,2),
    WASTE NUMERIC(9,2),
    SUMPRODUCTION NUMERIC(9,2),
    BASIS_MEALEXTRA NUMERIC(9,2),
    BASIS_MEAL1 NUMERIC(9,2),
    BASIS_MEAL2 NUMERIC(9,2),
    BASIS_MEAL3 NUMERIC(9,2),
    BASIS_SEMOLINA NUMERIC(9,2),
    BASIS_BRAN NUMERIC(9,2),
    BASIS_WASTE NUMERIC(9,2),
    BASIS_SUMPRODUCTION NUMERIC(9,2),
    BASIS_FLAKES NUMERIC(9,2),
    BASIS_WASTEUSELES NUMERIC(9,2))
AS
DECLARE VARIABLE CLASSID INTEGER;
DECLARE VARIABLE WEIGHT INTEGER;
DECLARE VARIABLE OLD_DATE DATE;
DECLARE VARIABLE TOTALWEIGHT INTEGER;
begin /*$$IBE$$ 
  select semolina, mealextra, meal1, meal2, meal3, waste, bran, flakes, wasteuseless
  from gradebasises
  where gradebasises.storageid = :StorageID and gradebasises.state = 1
  into :basis_semolina, :basis_mealextra, :basis_meal1, :basis_meal2, :basis_meal3,
       :basis_waste, :basis_bran, :basis_flakes, :basis_wasteuseles;
  basis_sumproduction = coalesce(:basis_semolina, 0) + coalesce(:basis_mealextra, 0) + coalesce(:basis_meal1, 0) + coalesce(:basis_meal2, 0) + coalesce(:basis_meal3, 0);
  sumproduction = 0;
  TOTALWEIGHT = 0;
  gradedate = '1.1.1';
  for
    select graderesults.gradedate, gradeouts.classid, sum(gradeouts.weight)
    from graderesults
      left join gradeouts on (graderesults.graderesultid = gradeouts.graderesultid)
    where graderesults.gradedate between :BegDate and :EndDate
      and graderesults.storingid = 3
      and graderesults.storageid = :StorageID
    group by graderesults.gradedate, gradeouts.classid
    into :OLD_DATE, :CLASSID, :WEIGHT
  do begin
    if (:OLD_DATE <> :gradedate) then begin
      if (:TOTALWEIGHT = 0) then TOTALWEIGHT = null;
      mealextra = :mealextra * 100 / :TOTALWEIGHT;
      meal1 = :meal1 * 100 / :TOTALWEIGHT;
      meal2 = :meal2 * 100 / :TOTALWEIGHT;
      bran = :bran * 100 / :TOTALWEIGHT;
      semolina = :semolina * 100 / :TOTALWEIGHT;
      waste = :waste * 100 / :TOTALWEIGHT;
      meal3 = :meal3 * 100 / :TOTALWEIGHT;
      sumproduction = :sumproduction * 100 / :TOTALWEIGHT;
      if (:gradedate <> '1.1.1') then suspend;
      gradedate = :OLD_DATE;
      sumproduction = 0;
      TOTALWEIGHT = 0;
      mealextra = 0;
      meal1 = 0;
      meal2 = 0;
      bran = 0;
      semolina = 0;
      waste = 0;
      meal3 = 0;
    end
    if (:CLASSID = 13) then mealextra = :WEIGHT;
    if (:CLASSID = 14) then meal1 = :WEIGHT;
    if (:CLASSID = 15) then meal2 = :WEIGHT;
    if (:CLASSID = 46) then bran = :WEIGHT;
    if (:CLASSID = 44) then semolina = :WEIGHT;
    if (:CLASSID = 66) then waste = :WEIGHT;
    if (:CLASSID = 65) then meal3 = :WEIGHT;
    if (:CLASSID in (13, 14, 15, 44, 65)) then sumproduction = :sumproduction + :WEIGHT;
    TOTALWEIGHT = :TOTALWEIGHT + :WEIGHT;
  end
  if (:gradedate <> '1.1.1') then begin
    if (:TOTALWEIGHT = 0) then TOTALWEIGHT = null;
    mealextra = :mealextra * 100 / :TOTALWEIGHT;
    meal1 = :meal1 * 100 / :TOTALWEIGHT;
    meal2 = :meal2 * 100 / :TOTALWEIGHT;
    bran = :bran * 100 / :TOTALWEIGHT;
    semolina = :semolina * 100 / :TOTALWEIGHT;
    waste = :waste * 100 / :TOTALWEIGHT;
    meal3 = :meal3 * 100 / :TOTALWEIGHT;
    sumproduction = :sumproduction * 100 / :TOTALWEIGHT;
    suspend;
  end
 $$IBE$$*/ EXIT;
end
         
         
         
       |