Hi, I have run the following query in a query node in over 500 process ins

Hi,
I have run the following query in a query node in over 500 process instances without an error:
INSERT INTO tempAbsenceClientUpload SELECT FirstName, LastName, UserID, UserIsActive, Email, TopClient, ClientGroup, isUpdated, MainProcessID, rownumber FROM temporaryAbsClientTable

which simply takes from one table to another.
However, I now get the following error message: 'Subquery returns more than 1 row Error'
Can anyone help me to understand why?

I don't really want alternative code suggestions- just why it happened.

Thanks...

OriginalPostID-77203

OriginalPostID-77203

  Discussion posts and replies are publicly visible

  • Could it be due to duplicate entries returned by the sub-query?
  • Is there anything else you're doing in this SQL? If it's a straight-forward Insert statement, it should work irrespective of the no of rows the Select statement returns. So, technically, your sub-select statement can return >1 records and it will be inserted. I think the issue lies in the fact that you are probably using a "=" somewhere that forces the SQL to accept only one record instead of using "IN". I would check that first. Is there a 'Where' clause you have to this SQL? I am assuming you must otherwise running 500 instances of the same sql would only result in duplicates.

    In short, if you'r tempAbsentClientUpload can accept multiple records from the temporaryAbsClientTable, check the SQL. On the other hand, if the SQL was designed to only allow one record, then check the data. It's quite likely that you have some duplicate data in your child table.
  • There was an 'on insert' trigger on the destination table. The data being entered was referenced against a third table in an expression expecting a single result (two results were being generated).

    So the 'sub routine' was connected to a function in a trigger on the destination table firing due to the insert.

    Putting in LIMIT 1 into the trigger code fixed the issue (I was only looking up a value- requiring true or false: if it was there more than once then this was fine...)

    Thanks for everyone's ideas.