Я сделал конкретное заявление, чтобы в основном сказать мне, когда разные зоны открыты / частично открыты / закрыты для разных скважин в разные даты. Но это меняется только периодически, поэтому между изменениями статуса есть несколько нулевых значений, которые я хочу перенести в значение предыдущего статуса. В идеале я бы хотел, чтобы это было в том же расчете, что и в случае, но вы, очевидно, не можете использовать циклические аргументы там, поэтому я в порядке с созданием нового столбца для этого, но у меня все еще есть проблемы с заполнением пробелов,
Ниже приведена упрощенная версия моего набора данных: текущие выходы в столбцах «1-й» и «2а» возвращают 0, когда нет ничего внутри скважины, 0,5, если он частично портирован, и 1, если онгасятся. Прямо сейчас я просто в заявлении case возвращаю ноль, если в этом месяце нет изменений для этой скважины.
Well Date Zone In Size In Zone Out Size Out 1st 2a
101 1/2019 2a blank 0
101 2/2019
101 3/2019 2a blank 1
101 4/2019 1st port 0.5
101 5/2019
101 6/2019
101 7/2019 1st port 0
Ниже приведен статус, который я хотел бы получить для столбцов «1-й» и «2а»,
Well Date Zone In Size In Zone Out Size Out 1st 2a
101 1/2019 2a blank 0 0
101 2/2019 0 0
101 3/2019 2a blank 0 1
101 4/2019 1st port 0.5 1
101 5/2019 0.5 1
101 6/2019 0.5 1
101 7/2019 1st port 0 1
Или
Well Date Zone In Size In Zone Out Size Out 1st 2a 1st filled 2a filled
101 1/2019 2a blank 0 0 0
101 2/2019 0 0
101 3/2019 2a blank 1 0 1
101 4/2019 1st port 0.5 0.5 1
101 5/2019 0.5 1
101 6/2019 0.5 1
101 7/2019 1st port 0 0 1
Как я уже говорил ранее, я использую оператор case для этих столбцов, поскольку вводимые мной данные о зоне / размере немного сложнее. чем то, что я здесь показываю, поэтому наличие вторичных столбцов «1 заполнено» и «2a заполнено» приемлемо при необходимости.
..
Если кто-то хочет / нуждается в этом, примермое текущее утверждение case в простейшей зоне приведено ниже:
case
when ([Zone In]="1st") and ([Port_Size In]=0) then 1
when ([Zone In]="1st") and ([Port_Size In]!=0) then 0.5
when [Zone Out]="1st" then 0
else NULL
end
(во входных данных значение 0 означает, что оно пустое, все остальное - размер порта, поэтому код не совсем соответствует упрощенным даннымпример.)
Любая помощь, которую кто-либо может оказать мне, будет очень признательна !!! Пожалуйста, дайте мне знать, если вам нужна другая информация.