Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to use Query Result From One Query in Another?

Suppose I have a Query Say "Select Ticket_ID, Status from Table A". It returns Ticket_ID values as 1, 2, 3

Now I want to use the values in Another query without writing a sub query

Query Should be Select ticket_ID, Sum(Value) from Table B Where Ticket_ID in (1, 2, 3) i.e.values from Query 1.

And Not Select Ticket_ID, sum(Value) from Table A Where Ticket_ID in (Select Ticket_ID from table A)

Because the actual Query I have Is quite big and I dont want to use that as a subquery.

I cannot used join here since it with give me 1 -> n values which will give incorrect results.

Please suggest

Regards

Suresh

Labels (1)
3 Replies
chriscammers
Partner Ambassador
Partner Ambassador

I would suggest storing the Ticket_ID's from your first query in a variable, you would use the Concat() function to create a comma separated list and then pass the variable in your sql using syntax something like this...

Tickets:

Load

Concat(Chr(39) & Ticket_ID & Chr(39),', ') as Tickets;

Select Ticket_ID from...;

Let YourVar = Peek('Tickets',0,'Tickets');

Select * from Blah where Ticket_ID In ($(YourVar));

Not applicable
Author

Try this:

Test:

Load

Ticket_ID,

Status

from TableA.qvd (qvd);

concatenate

Load

ticket_ID as Ticket_ID,        // I assume that ticket_ID is another field in table B

Value                                 //which has same values as Ticket_ID from table A

from TableB.qvd (qvd);

Test1:

Load

Ticket_ID,

Value

resident Test where Ticket_ID=1 or 

Ticket_ID=2 or Ticket_ID=3;

drop table Test;

Test2:

Load

Ticket_ID,

Sum(Value) as Total_Value

resident Test1 group by  Ticket_ID;

drop table Test1;

Not applicable
Author

Try something like this:

TB_A:

SELECT
     TICKET_ID,
     STATUS
FROM TABLE_A;
INNER JOIN

SELECT
     TICKET_ID,
     SUM(VALUE) AS TICKET_VALUE
FROM TABLE_B
GROUP BY TICKET_ID;