I am looking for examples of complex join expression in the physical layer of the semantic Business Model. I've searched for over an hour and only found one example, and it did not work for me. I hope someone can help me with this as I have run out of ideas.
I'm using Oracle BI Administration Tool version 12.3.7
I have two tables detail_postings_view v and fundbalrptgrp f.
v.c_fund = f.c_fund
v.c_account = f.c_account
v.c_object = f.c_object but f.c_object is null in some rows because those rows have more than one possible c_object
v.decode_key = f.decode_key but f.decode_key is null in some rows because those rows have more than one possible decode_key
Basically, some of the fund/account combinations are repeated in the fundbalrptgrp table, but need to be separated into negative results/positive results (designated by the decode key) in the report. There is also some overlap of the object codes. These are the two reasons I need a complex join.
Below is an example of what I've tried along with variations of it. I don't get any error in the Expression Builder, but when I click OK in the Physical Diagram Expression window I get an error Only columns, designated predicates and operators are allowed. I can't find anything online explaining what that actually means.
I also tried a variation of the same below but using a CASE statement. When I tried that I get a Syntax error
"fundbalrptgrp_alias1"."C_FUND" = "detail_postings_view_alias1"."C_FUND"
AND
((
("fundbalrptgrp_alias1"."C_GRP_LVL" = 'LVL100'
OR "fundbalrptgrp_alias1"."C_GRP_LVL" = 'LVL200')
AND "fundbalrptgrp_alias1"."C_ACCOUNT" = "detail_postings_view_alias1"."C_ACCOUNT"
AND "fundbalrptgrp_alias1"."C_OBJECT" = "detail_postings_view_alias1"."C_OBJECT"
)
OR
(
("fundbalrptgrp_alias1"."C_GRP_LVL" = 'LVL300'
OR "fundbalrptgrp_alias1"."C_GRP_LVL" = 'LVL600')
AND "fundbalrptgrp_alias1"."C_ACCOUNT" = "detail_postings_view_alias1"."C_ACCOUNT"
AND "fundbalrptgrp_alias1"."C_OBJECT" = "detail_postings_view_alias1"."C_OBJECT"
AND "fundbalrptgrp_alias1"."DECODE_KEY" = "detail_postings_view_alias1"."DECODE_KEY"
)
OR
(
"fundbalrptgrp_alias1"."C_GRP_LVL" = 'LVL500'
AND ""fundbalrptgrp_alias1"."C_ACCOUNT" = "detail_postings_view_alias1"."C_ACCOUNT"
))