Как рассчитать вчерашние записи с сегодняшними, используя прогресс 4gl? - PullRequest
0 голосов
/ 08 мая 2019

Я написал программу, и мне нужно рассчитать вчерашние записи (с 12:00 до 05:00) с сегодняшними записями

for each womf_worder of sfcf_au_ship where 
         womf_worder.word_production_status EQ "B"                      and 
         womf_worder.word_build_date        EQ today - 1                and 
         womf_worder.word_build_time        GE tt_shift.shft_start_hour and
         womf_worder.word_build_time        LE tt_shift.shft_stop_hour  
         no-lock: 

    assign i = i + 1.
end.

Но проблема в том, что мне нужно только рассчитать заказыв указанное время (с 12:00 до 05:00) с сегодняшними записями.Не могли бы вы помочь этому делу?

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Если вы знаете, что в ваших данных нет «будущих» дат, вы можете использовать что-то вроде этого:

for each womf_worder of sfcf_au_ship where 
         womf_worder.word_production_status EQ "B"                      and 
         womf_worder.word_build_date        GE today - 1                and 
         womf_worder.word_build_time        GE tt_shift.shft_start_hour and
         womf_worder.word_build_time        LE tt_shift.shft_stop_hour  
         no-lock: 

  assign i = i + 1.
end.

Если вы не знакомы с данными, с которыми работаете, или хотите, чтобы они были более переносимыми:

for each womf_worder of sfcf_au_ship where 
         womf_worder.word_production_status EQ "B"                      and 
         womf_worder.word_build_time        GE tt_shift.shft_start_hour and
         womf_worder.word_build_time        LE tt_shift.shft_stop_hour  and
         ( womf_worder.word_build_date      eq today - 1                or
           womf_worder.word_build_date      eq today                       )
         no-lock: 

  assign i = i + 1.
end.
1 голос
/ 29 мая 2019

Из того, что я понимаю, похоже, вам нужно использовать скобки и оператор "ИЛИ", поэтому вам понадобится что-то вроде этого:

FOR EACH  womf_worder OF sfcf_au_ship no-lock
   WHERE  womf_worder.word_production_status EQ "B"                      
     AND (womf_worder.word_build_date        EQ today - 1                
     AND  womf_worder.word_build_time        GE tt_shift.shft_start_hour)
      OR (womf_worder.word_build_date        EQ today 
     AND  womf_worder.word_build_time        LE tt_shift.shft_stop_hour)
          : 
   ASSIGN i = i + 1.
END. 

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...