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.