DELETE test051125..MOCTB WHERE TB003 (SELECT B.TB003,A.TA001,A.TA002 FROM test051125..MOCTB B ,test051125..MOCTA A
WHERE A. TA001=B.TB001 and A .TA002=B.TB002 AND B. TB003 LIKE 'D%' 
 AND A.TA012 >= '20080401'
  AND  A.TA012 <= '20080430'
  AND A.TA014 >= '20080401'
  AND A.TA014 <= '20080430')运行错误:
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.  请问是什么意思 ..我要怎么解决.谢谢

解决方案 »

  1.   

    DELETE b from test051125..MOCTB b WHERE exists (SELECT 1 FROM test051125..MOCTA A
    WHERE A. TA001=B.TB001 and A .TA002=B.TB002 AND B. TB003 LIKE 'D%' 
     AND A.TA012 >= '20080401'
      AND  A.TA012  <= '20080430'
      AND A.TA014 >= '20080401'
      AND A.TA014  <= '20080430') 
      

  2.   


    DELETE b   FROM test051125..MOCTB B ,test051125..MOCTA A 
    WHERE A. TA001=B.TB001 and A .TA002=B.TB002 AND B. TB003 LIKE 'D%'  
     AND A.TA012 >= '20080401' 
      AND  A.TA012  <= '20080430' 
      AND A.TA014 >= '20080401' 
      AND A.TA014  <= '20080430')
      

  3.   

    DELETE T from test051125..MOCTB T WHERE TB003 in 
    (
      SELECT B.TB003 
      FROM test051125..MOCTB B , test051125..MOCTA A 
      WHERE A.TA001=B.TB001 and 
            A.TA002=B.TB002 AND 
            B.TB003 LIKE 'D%' AND
            A.TA012 >= '20080401' AND A.TA012  <= '20080430' AND 
            A.TA014 >= '20080401' AND A.TA014  <= '20080430'

    --orDELETE T from test051125..MOCTB T WHERE TB003 in 
    (
      SELECT B.TB003 
      FROM test051125..MOCTB B , test051125..MOCTA A 
      WHERE A.TA001=B.TB001 and 
            A.TA002=B.TB002 AND 
            B.TB003 LIKE 'D%' AND
            A.TA012 between '20080401' AND A.TA012  <= '20080430' AND 
            A.TA014 between '20080401' AND A.TA014  <= '20080430'