Q&A

  • ACCESS 에서 SELECT 후 UPDATE 문을 작성 했는데...
<!--CodeS-->
UPDATE JCHGO
SET JCHGO.SUJUIL = M.SUJUIL, JCHGO.SUJUNO = M.SUJUNO, JCHGO.SUNO = M.SUJUIL+M.SUJUNO
FROM (
SELECT DISTINCT A.SUJUIL, A.SUJUNO, B.JNO, B.JCHNO FROM OBALJUT AS A, JCHGO AS B
WHERE A.OBALJUIL = B.JCHGOIL
AND A.OBALJUNO = B.JCHGONO
AND B.JGU = '2'
) AS M
WHERE JCHGO.JNO = M.JNO
<!--CodeE-->

위에 처럼 했는데 오류만 나네요... MSSQL 쓰듯 했는데 않되는 군요..
이유가 몰까요?

잘 아는 고수님들 좀 수정해 주세요...

그럼 미리 감사합니다..^^
1  COMMENTS
  • Profile
    박홍재 2007.04.13 02:53
    애궁 SET 문 다음에 다시 From 문이 올수는 없죠...
    기본 SQL 문법을 다시 보셔야 겠네요.
    다음과 같이 하려면 일단 쿼리를 두개를 만드셔야 할거 같습니다.

    Q1.Close;
    Q1.SQL.Clear;
    Q1.SQL.Add('SELECT DISTINCT A.SUJUIL, A.SUJUNO, B.JNO, B.JCHNO FROM OBALJUT AS A, JCHGO AS B');
    Q1.SQL.Add('WHERE A.OBALJUIL = B.JCHGOIL AND A.OBALJUNO = B.JCHGONO AND B.JGU = ''+
        '2'+'''');

    Q1.Open;

    While Not(Q1.Eof) do
    begin
      Q2.Close;
      Q2.SQL.Clear;
      Q2.SQL.Add('UPDATE JCHGO');
      Q2.SQL.Add('SET SUJUIL ='''+Q1.FieldBYName('SUJUIL').AsString+''',SUJUNO='''
      .......
      Q2.ExecSQL;

      Q1.Next;
    end;

    라는 형식으로 바꾸셔서 하셔야 할 듯 합니다. 그럼.