Примером моего набора данных будет:
ZoneA: 0-100
ZoneB: 100-200
Name SubName startValueA endValueA startValueB endValueB
A X 0 25 0 100
A X 25 35 0 100
A X 35 80 0 100
A X 80 95 0 100
A X 95 120 0 100
A Y 120 145 100 200
A Y 145 160 100 200
A Y 160 175 100 200
A Y 175 190 100 200
A Y 190 200 100 200
По сути, я хочу, чтобы это:
Name SubName startValueA endValueA startValueB endValueB Percent
A X 0 25 0 100 1
A X 25 35 0 100 1
A X 35 80 0 100 1
A X 80 95 0 100 1
A X 95 100 0 100 .2 <--- (100-95)/(120-95)
A X 100 120 100 200 .8 <--- (120-100)/(120-95)
A Y 120 145 100 200 1
A Y 145 160 100 200 1
A Y 160 175 100 200 1
A Y 175 190 100 200 1
A Y 190 200 100 200 1
Таким образом, добавляется строка, где ValueA пересекает ValueB, а затем вычисляется результирующий процент каждого.В основном я пытаюсь выяснить, сколько valueA принадлежит в каждой зоне, как определено valueB.Я сделал первый ряд довольно просто с чем-то вроде:
case
when endValueA <= endValueB then 1
else ((endValueB - startValueA)/(endValueA - startValueA))
Я просто не уверен, как добавить дополнительный ряд с обратным процентом.
Спасибозаранее за помощь!