How to filter out two column values at a time?

Raju Koyagura
Tera Guru

Hi All,

I am looking for addQuery/addEncodedQuery..etc to write below scenario to filter out the two column values at a time.

I have a two choice fields 'State' and 'Substate' with some choice values. I want to get the records which are not   in State=X with Substate=Y.

var gr = new GlideRecord('table_name');

gr.query();

while(gr.next())

{

if(!(gr.status==X && gr_sasset.substate=='Y'))

{

//Some logic goes here

}

}

Instead of writing a if condition in the while loop, is there any alternate way to filter the records using addQuery/addEncodedQuery...etc. and for the same scenario how can we set filters for list in the UI (instead of script)?. Please suggest me in this, thanks in advance.

Thanks & Regards,

Raju.

1 ACCEPTED SOLUTION

I have created table as per your requirement in demo please click below link to login



https://demo013.service-now.com/login.do


username and pwd : admin



After login click this below link


https://demo013.service-now.com/u_test_condition_list.do?sysparm_query=u_status%3DX%5EORu_sub_status...


filter condition.JPG


View solution in original post

22 REPLIES 22

Yes Kalaiarasan, I understand.



Lets assume we have below 6 records


IDStatusSubstate
1XY
2XA
3XB
4PY
5QY
6XY


In that I want to filter out the records Status=X with Substate=Y. That


means output should be only 2,3, 4, 5 records (1 and 6 should be filtered


out).



status!=X is gives the records which are not having the status 'X'. So all


the 1, 2, 3, 6 will be skipped irrespective of substate. Then output is 4,


5.


'^' will add the and condition


state!=Y will skip the remaining 4, 5.



Actually, I am expecting the output as 2, 3, 4, 5. How can we write the


addQuery or addEncodedQuery condition for this?.



On Fri, Jan 9, 2015 at 2:40 AM, Kalaiarasan P <


Can you just check if it works or not ? It should work and give you the filtered records as you need...


Sorry, no luck already I tried that.



On Fri, Jan 9, 2015 at 3:02 AM, Kalaiarasan P <


What about this, about long but I think it will work:



gs.addEncodedQuery('state=X^substate!=Y^NQstate!=Y^substate=X^NQsubstate!=X^state!=Y');



So we're basically saying show anything where:



State = X and Substate != Y         OR


State != X and Substate = Y         OR


State != X and Substate != Y



This means we're only removing the records where state = X and substate = Y, which would return onle rows 2, 3, 4 and 5 in your example.



Let me know if you have any luck with this.


Thank you, very much Adam...:)