Помогите, пожалуйста, с задачей:
Дана таблица с операциями с валютой. Какие-то операции являются обменом валют, какие-то пополнением счета и т.д., что в таблице в явном виде не указывается.
Есть номер транзакции, и для каждой транзакции несколько операций. Для каждой операции указывается сумма, валюта, эквивалент в USD и тип. Для некотрых операций эквивалент в USD не заполнен, что и предстоит сделать.
Необходимо добавить новый столбец "Эквивалент пары" и заполнить его, если столбец эквивалент валюты в USD не заполнен (или же сразу для всех, но в случае если эквивалент в USD заполнен, то значение будет равно значению столбца "Эквивалент USD").
Это можно сделать только для обменных операций:
1) Сначала необходимо понять, какие из операций являются обменом валют:
если количество операций с ненулевой Суммой по одному номеру транзакции равно 3 и более, при этом одна операция имеет тип "сбор", одна операция (не являющаяся сбором) имеет Сумму меньше 0, а другие операции (одна и более, тоже не являющиеся сбором) каждая имеет сумму больше 0
или наоборот
одна операция (не являющаяся сбором) имеет Сумму больше 0, а другие операции (одна и более, тоже не являющиеся сбором) каждая имеет сумму меньше 0,
то есть одна валюта может обмениваться на одну другую валюту или на несколько других.
2) Если одна валюта меняется на другую, то есть одна операция "не сбор" меньше нуля, другая больше нуля, тогда эквивалент в USD одной валюты равен эквиваленту USD другой валюты в этой транзакции, умноженному на -1.
3) Если одна валюта меняется сразу на несколько, или несколько меняется на одну, то эквивалент этой одной валюты равен сумме всех других эквивалентов в этой транзакции
4) При этом, если одна валюта меняется на несколько других, и среди этих других есть хотя бы один неопределенный эквивалент, то значение эквивалента для обмениваемой валюты определить невозможно, подставить значение null
Помогите, пожалуйста, с такой задачей. Возможно, лучше ее разбить на несколько этапов?
Дана таблица с операциями с валютой. Какие-то операции являются обменом валют, какие-то пополнением счета и т.д., что в таблице в явном виде не указывается.
Есть номер транзакции, и для каждой транзакции несколько операций. Для каждой операции указывается сумма, валюта, эквивалент в USD и тип. Для некотрых операций эквивалент в USD не заполнен, что и предстоит сделать.
Необходимо добавить новый столбец "Эквивалент пары" и заполнить его, если столбец эквивалент валюты в USD не заполнен (или же сразу для всех, но в случае если эквивалент в USD заполнен, то значение будет равно значению столбца "Эквивалент USD").
Это можно сделать только для обменных операций:
1) Сначала необходимо понять, какие из операций являются обменом валют:
если количество операций с ненулевой Суммой по одному номеру транзакции равно 3 и более, при этом одна операция имеет тип "сбор", одна операция (не являющаяся сбором) имеет Сумму меньше 0, а другие операции (одна и более, тоже не являющиеся сбором) каждая имеет сумму больше 0
или наоборот
одна операция (не являющаяся сбором) имеет Сумму больше 0, а другие операции (одна и более, тоже не являющиеся сбором) каждая имеет сумму меньше 0,
то есть одна валюта может обмениваться на одну другую валюту или на несколько других.
2) Если одна валюта меняется на другую, то есть одна операция "не сбор" меньше нуля, другая больше нуля, тогда эквивалент в USD одной валюты равен эквиваленту USD другой валюты в этой транзакции, умноженному на -1.
Транзакция | Валюта | Сумма | Эквивалент в USD | Тип | Эквивалент пары |
111 | USD | 130 | 130 | сбор | |
111 | EUR | -1000 | -1100 | ||
111 | CHF | 983 | 0 | =(-1100) * -1 |
115 | USD | 130 | 130 | сбор | |
115 | RUB | 51000 | 1000 | ||
115 | EUR | 1000 | 1100 | ||
115 | SEK | -500 | 0 | =(1000 + 1100) *-1 |
Помогите, пожалуйста, с такой задачей. Возможно, лучше ее разбить на несколько этапов?