Hi, I try to reproduce a very simple SQL query in X with :
- 3 tables
- where clause
- OR conditions
- LIKE
I would like the following result in SQL :
SELECT * FROM TABLE1 tab1
LEFT JOIN TABLE2 tab2 on tab2.x = tab1.x
LEFT JOIN TABLE3 tab3 on tab3.x = tab1.x
WHERE (tab1.a LIKE 'OR tab1.aa LIKE 'OR tab2.b LIKE 'or tab3.c LIKE '
I tried addRange and addQueryFilter but the result is not good.
QueryBuildDataSource tab1;
QueryBuildDataSource tab2;
QueryBuildDataSource tab3;
tab1 = query.dataSourceTable(tableNum(TABLE1));
tab2 = query.dataSourceTable(tableNum(TABLE2));
tab3 = query.dataSourceTable(tableNum(TABLE3));
// 1 - ADDQUERYFILTER
query.addQueryFilter(tab1, fieldStr(TABLE1, a)).value('F1');
query.addQueryFilter(tab1, fieldStr(TABLE1,aa)).value('F1');
query.addQueryFilter(tab2, fieldStr(TABLE2,b)).value('F1');
query.addQueryFilter(tab3, fieldStr(TABLE3, c)).value('F1')
// 2 - ADDRANGE
QueryBuildRange qbr;
qbr = tab1.addRange(fieldNum(TABLE1, a));
qbr = tab1.addRange(fieldNum(TABLE1, aa));
qbr = tab2.addRange(fieldNum(TABLE2, b));
qbr = tab3.addRange(fieldNum(TABLE3, c));
qbr.value(strFmt('((%2 LIKE \'%%1%\') || (%3 LIKE \'%%1%\') || (%4 LIKE \'%%1%\') || (%5 LIKE \'%%1\'))', 'F1', fieldStr(TABLE1, a), fieldStr(TABLE1, aa) fieldStr(TABLE2, b), fieldStr(TABLE3, c) ));
I'm lost, how to do it in X ?
Thanks.