SQL Server Developer Center > SQL Server Forums > Transact-SQL > Subquery returns more than one result
Ask a questionAsk a question
 

AnswerSubquery returns more than one result

  • Wednesday, November 04, 2009 3:00 PMMarekCB Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hi, I have this problem I am trying to solve for an SSRS report - the data used is stored on an iSeries.

    I am trying to create a query that will list order details for all order numbers that are returned from a sub query, the query below provides me with the error subquery returns more than one result.  Any help or ideas would be appreciated. 

    SELECT     TYPE, ORDNO, OSTAT, YSEQ, FITEM, QTYREM, ORDDUE, PRIOR1, PRIOR2, PRIOR3, PRIOR4, DATA1, DATA2, DATA3, DATA4, DATA5, DATA6, DATA7,DATA8, DATA9, DATA10, DATA11, DATA12, COMM
    FROM         AMFLIBA.CHEVEXL1P
    WHERE     (ORDNO =
                              (SELECT DISTINCT ORDNO
                                FROM          AMFLIBA.CHEVEXL1P CHEVEXL1P_1
                                WHERE      (DATA1 = ?) OR
                                                       (DATA2 = ?) OR
                                                       (DATA3 = ?) OR
                                                       (DATA4 = ?) OR
                                                       (DATA5 = ?) OR
                                                       (DATA6 = ?) OR
                                                       (DATA7 = ?) OR
                                                       (DATA8 = ?) OR
                                                       (DATA9 = ?) OR
                                                       (DATA10 = ?) OR
                                                       (DATA11 = ?) OR
                                                       (DATA12 = ?)))

Answers

  • Wednesday, November 04, 2009 3:03 PMAbdshall Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    Change the = to IN as follows

    SELECT     TYPE, ORDNO, OSTAT, YSEQ, FITEM, QTYREM, ORDDUE, PRIOR1, PRIOR2, PRIOR3, PRIOR4, DATA1, DATA2, DATA3, DATA4, DATA5, DATA6, DATA7,DATA8, DATA9, DATA10, DATA11, DATA12, COMM
    FROM         AMFLIBA.CHEVEXL1P
    WHERE     (ORDNO IN
                              (SELECT DISTINCT ORDNO
                                FROM          AMFLIBA.CHEVEXL1P CHEVEXL1P_1
                                WHERE      (DATA1 = ?) OR
                                                       (DATA2 = ?) OR
                                                       (DATA3 = ?) OR
                                                       (DATA4 = ?) OR
                                                       (DATA5 = ?) OR
                                                       (DATA6 = ?) OR
                                                       (DATA7 = ?) OR
                                                       (DATA8 = ?) OR
                                                       (DATA9 = ?) OR
                                                       (DATA10 = ?) OR
                                                       (DATA11 = ?) OR
                                                       (DATA12 = ?)))
    

    Abdallah, PMP, MCTS

All Replies

  • Wednesday, November 04, 2009 3:03 PMAbdshall Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    Change the = to IN as follows

    SELECT     TYPE, ORDNO, OSTAT, YSEQ, FITEM, QTYREM, ORDDUE, PRIOR1, PRIOR2, PRIOR3, PRIOR4, DATA1, DATA2, DATA3, DATA4, DATA5, DATA6, DATA7,DATA8, DATA9, DATA10, DATA11, DATA12, COMM
    FROM         AMFLIBA.CHEVEXL1P
    WHERE     (ORDNO IN
                              (SELECT DISTINCT ORDNO
                                FROM          AMFLIBA.CHEVEXL1P CHEVEXL1P_1
                                WHERE      (DATA1 = ?) OR
                                                       (DATA2 = ?) OR
                                                       (DATA3 = ?) OR
                                                       (DATA4 = ?) OR
                                                       (DATA5 = ?) OR
                                                       (DATA6 = ?) OR
                                                       (DATA7 = ?) OR
                                                       (DATA8 = ?) OR
                                                       (DATA9 = ?) OR
                                                       (DATA10 = ?) OR
                                                       (DATA11 = ?) OR
                                                       (DATA12 = ?)))
    

    Abdallah, PMP, MCTS
  • Tuesday, November 10, 2009 9:51 AMMarekCB Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thankyou very much, so simple and obvious, was just about to mark as answer but beaten to it...