0

この sql ステートメントのどこが間違っていたのかを知る必要があります。同様の問題で以前のスレッドで解決策を見つけようとしましたが、私の問題を解決できるものはありません。だから多分私の発言は実際には間違っていると思います。

UPDATE table1 b

LEFT JOIN table2 m ON b.ICNO=m.ICNO

SET b.SalMoveMth = '01'

WHERE
    m.Status!='6' AND 
    (DATE_FORMAT(startDateSand,'%m')='10' OR DATE_FORMAT(startDateSand,'%m')='11' OR 
        DATE_FORMAT(startDateSand,'%m')='12') AND 
    ((SELECT SalMoveMth FROM table1 WHERE ICNO=table2.ICNO ORDER BY SalMoveMthStDt DESC LIMIT 1)!='10').

ありがとうございました。

4

2 に答える 2

0
update table1 
set SalMoveMth = '01' where icno in 
  (select b.ICNO from table1 b 
   left join table2 m on b.ICNO=m.ICNO
   where m.Status!='6' 
   and (DATE_FORMAT(startDateSand,'%m')='10' or 
        DATE_FORMAT(startDateSand,'%m')='11' or 
        DATE_FORMAT(startDateSand,'%m')='12') 
   and b.SalMoveMth in (
     ((select SalMoveMth 
       from table1 
       where ICNO=table2.ICNO 
       order by SalMoveMthStDt desc limit 1)<>'10')
  )
于 2012-06-13T05:59:12.503 に答える
0

where句の最後の部分:

それ以外の :

where ICNO=table2.ICNO order by SalMoveMthStDt desc limit 1)!='10')

試す:

where ICNO=table2.ICNO order by SalMoveMthStDt desc limit 1)<>'10')

また :

and b.SalMoveMth in (
((select SalMoveMth from table1 where ICNO=table2.ICNO order by 
SalMoveMthStDt desc limit 1)<>'10'))
于 2012-06-13T04:45:05.757 に答える