lt_eq_rule_list = Select territory_guid, rule_id, attr_id, valuel, 'EQ_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'I'
And options = 'EQ'
Union ALL
Select territory_guid, rule_id, attr_id, valuel, 'EQ_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'E'
And options = 'NE';
lt_ne_rule_list = Select territory_guid, rule_id, attr_id, valuel, 'NE_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'I'
And options = 'NE'
Union ALL
Select territory_guid, rule_id, attr_id, valuel, 'NE_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'E'
And options = 'EQ';
*
lt_bt_rule_list = Select territory_guid, rule_id, attr_id, valuel, valueh, 'BT_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'I'
And options = 'BT'
Union ALL
Select territory_guid, rule_id, attr_id, valuel, valueh, 'BT_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'E'
And options = 'NB';
:
:
lt_cp_rule_list = Select territory_guid, rule_id, attr_id, replace(valuel,'*','%') as valuel, 'CP_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'I'
And options = 'CP'
Union ALL
Select territory_guid, rule_id, attr_id, replace(valuel,'*','%') as valuel, 'CP_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'E'
And options = 'NP';
*
lt_np_rule_list = Select territory_guid, rule_id, attr_id, replace(valuel,'*','%') as valuel, 'NP_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'I'
And options = 'NP'
Union ALL
Select territory_guid, rule_id, attr_id, replace(valuel,'*','%') as valuel, 'NP_RULE' as rule_option
From :it_terr_rule_list
Where sign = 'E'
And options = 'CP';
-- Condition 1, Include 'EQ' & Exclude 'NE'
lt_cond1_terr_list = Select av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option
From :it_acc_attr_values av
Inner Join :lt_eq_rule_list rl ON av.attr_id = rl.attr_id And av.attr_value = rl.valuel
Group by av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option;
:
-- Condition 3, Include 'BT' & Exclude 'NB'
lt_cond3_terr_list = Select av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option
From :it_acc_attr_values av
Inner Join :lt_bt_rule_list rl ON av.attr_id = rl.attr_id And av.attr_value between rl.valuel and rl.valueh
Group by av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option;
:
:
-- Condition 9, Include 'CP' & Exclude 'NP'
lt_cond9_terr_list = Select av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option
From :it_acc_attr_values av
Inner Join :lt_cp_rule_list rl ON av.attr_id = rl.attr_id And av.attr_value like rl.valuel
Group by av.partner_guid, rl.territory_guid, rule_id, rl.attr_id, rule_option;
:
-- Put all these together
lt_terr_rule_acc_list = Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond1_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond2_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond3_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond4_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond5_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond6_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond7_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond8_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond9_terr_list
Union All
Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_cond10_terr_list;
-- once we determine there is a link between the territory, rule, attribute to partner account, we can aggregate here, drop the dups, actual values etc.
et_terr_rule_acc_list = Select partner_guid, territory_guid, rule_id, attr_id, rule_option
From :lt_terr_rule_acc_list
Group by partner_guid, territory_guid, rule_id, attr_id, rule_option;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 | |
1 |