如何测试子查询返回空记录


我有一个查询需要更新另一个表的一些元组,我只需要更新两条记录,每条记录对应的值是从另一个表中获取的,目前我的查询工作正常,没有输入错误,但它获取了零条记录,因此我的其他表的查询,我发现我的内部子查询无法获取相关数据,但我无法测试我的内部子查询,因为它需要两个表的引用

下面是查询

UPDATE SALARY_DETAIL_TBL sd
SET GROSS_EARNING =(SELECT AMOUNT FROM SALARY_DETAIL_REPORT sr WHERE sd.EMP_ID = sr.EMP_ID AND sr.PAY_CODE = 997) ,
  GROSS_DEDUCTION =
  (SELECT AMOUNT
  FROM SALARY_DETAIL_REPORT sr
  WHERE sd.EMP_ID = sr.EMP_ID
  AND sr.PAY_CODE = 998
  )
WHERE (GROSS_EARNING IS NULL
OR GROSS_DEDUCTION   IS NULL)

GROSS_EARNINGGROSS_DEDUCTION由内部查询填充,内部查询产生零结果,我想测试是单独的,请建议我最好的可能的解决方案。

现在它抛出

UPDATE SALARY_DETAIL_TBL sd
    SET GROSS_EARNING =(SELECT AMOUNT FROM SALARY_DETAIL_REPORT sr WHERE sd.EMP_ID = sr.EMP_ID AND sr.PAY_CODE = 997) ,
      GROSS_DEDUCTION =
      (SELECT AMOUNT
      FROM SALARY_DETAIL_REPORT sr
      WHERE sd.EMP_ID = sr.EMP_ID
      AND sr.PAY_CODE = 998
      )
    WHERE (GROSS_EARNING IS NULL
    OR GROSS_DEDUCTION   IS NULL)

BadSqlGrammerException: single-row subquery returns more than one row

转载请注明出处:http://www.eluwawa.com/article/20230526/1565538.html