2012-05-16 2 views
2

Access 데이터베이스에 저장 한 쿼리 (ORACLE, SQL Server의보기와 동일)가 있습니다. 이제 선택 목록에 다른 열을 추가해야합니다. 그러나 SQL을 변경할 때마다 오류가 발생합니다. 하나의 쉼표를 제거한 다음 다시 쉼표를 사용한다고 가정 해 보겠습니다. 나는 "Syntax error from From", "Join operation의 구문 오류"와 같은 오류가 발생합니다. 따라서 아무 것도 변경 한 다음 변경 사항을 취소하면 여전히 오류가 발생합니다. 어떻게 이것을 피할 수 있습니까?MS ACCESS- SQL 편집 및 실행 취소 오류가 발생합니다.

편집 : 편집 한 후

SELECT A_B.ALICI, Q.QAINOM, M.TIP, Q.QATARIX, Q.CEMIBORC, R2.ADI AS SAT_NOV, M.TAMADI, M.MARK, SA.MIQDAR, SA.SAQIYM, SA.CEMI, SA.FAIZ, A_B.BORC_SU, A_B.MEBLEG, A_B.FERQ, K_G.CEMI_ODEN, A_B.MOBTEL, SA.NOTE 
FROM ([SELECT Round(Sum([DBKASSA].[MEBLEQ]),3) AS CEMI_ODEN, DBKASSA.KODAL_GT 
FROM DBKASSA 
WHERE (((DBKASSA.TIP)=1) AND ((DBKASSA.KODAL_GT)=[INBUYERID]) AND ((DBKASSA.TARIX)=[INTILLDATE])) 
GROUP BY DBKASSA.KODAL_GT]. AS K_G RIGHT JOIN ([SELECT AL.KODALAN,AL.MOBTEL, IIf([Su_CEMIBORC] Is Null,0,[Su_CEMIBORC]) AS BORC_SU, IIf([Su_MEBLEQ] Is Null,0,[Su_MEBLEQ]) AS MEBLEG, (IIf([Su_MEBLEQ] Is Null,0,[Su_MEBLEQ]))-(IIf([Su_CEMIBORC] Is Null,0,[Su_CEMIBORC])) AS FERQ, AL!OBYEKT & (IIf(AL!NUMAY Is Not Null," - " & AL!NUMAY)) AS ALICI 
FROM 
(
    SELECT DBKASSA.KODAL_GT, Sum(DBKASSA.MEBLEQ) AS Su_MEBLEQ 
    FROM DBKASSA 
    WHERE (((DBKASSA.TIP)=1) AND ((DBKASSA.KODAL_GT)=[INBUYERID])) 
    GROUP BY DBKASSA.KODAL_GT 
    ) AS OD_AL 
    RIGHT JOIN (
    (
    SELECT DBQAIME.KODALAN, Sum(DBQAIME.CEMIBORC) AS Su_CEMIBORC 
    FROM DBQAIME 
    WHERE (((DBQAIME.KODALAN)=[INBUYERID])) 
    GROUP BY DBQAIME.KODALAN 
    ) AS B_AL 
    RIGHT JOIN DBALAN AS AL ON B_AL.KODALAN = AL.KODALAN) ON OD_AL.KODAL_GT = AL.KODALAN 
    WHERE (((AL.KODALAN)=[INBUYERID])) 
]. AS A_B INNER JOIN DBQAIME AS Q ON A_B.KODALAN = Q.KODALAN) ON K_G.KODAL_GT = A_B.KODALAN) INNER JOIN (DBMAL AS M INNER JOIN (DBSA AS SA INNER JOIN [SELECT R2.KOD, R2.VID, R2.ADI 
    FROM DBRAB2 AS R2 
    WHERE (((R2.VID)=3))]. AS R2 ON SA.KODEMLNO = R2.KOD) ON M.KODMAL = SA.KODMAL) ON Q.QAINOM = SA.QAINOM 
WHERE (((Q.QAINOM)=[INSALEINVOICE])) 
ORDER BY M.TIP, M.TAMADI; 

를 편집하기 전에; 그런데

SELECT A_B.ALICI, Q.QAINOM, M.TIP, Q.QATARIX, Q.CEMIBORC, R2.ADI AS SAT_NOV, M.TAMADI, M.MARK, SA.MIQDAR, SA.SAQIYM, SA.CEMI, SA.FAIZ, A_B.BORC_SU, A_B.MEBLEG, A_B.FERQ, K_G.CEMI_ODEN, A_B.MOBTEL, SA.NOTE 
FROM ([SELECT Round(Sum([DBKASSA].[MEBLEQ]),3) AS CEMI_ODEN, DBKASSA.KODAL_GT 
FROM DBKASSA 
WHERE (((DBKASSA.TIP)=1) AND ((DBKASSA.KODAL_GT)=[INBUYERID]) AND ((DBKASSA.TARIX)=[INTILLDATE])) 
GROUP BY DBKASSA.KODAL_GT]. AS K_G RIGHT JOIN ([SELECT AL.KODALAN,AL.MOBTEL, IIf([Su_CEMIBORC] Is Null,0,[Su_CEMIBORC]) AS BORC_SU, IIf([Su_MEBLEQ] Is Null,0,[Su_MEBLEQ]) AS MEBLEG, (IIf([Su_MEBLEQ] Is Null,0,[Su_MEBLEQ]))-(IIf([Su_CEMIBORC] Is Null,0,[Su_CEMIBORC])) AS FERQ, AL!OBYEKT & (IIf(AL!NUMAY Is Not Null," - " & AL!NUMAY)) AS ALICI 
FROM 
(
    SELECT DBKASSA.KODAL_GT, Sum(DBKASSA.MEBLEQ) AS Su_MEBLEQ 
    FROM DBKASSA 
    WHERE (((DBKASSA.TIP)=1) AND ((DBKASSA.KODAL_GT)=[INBUYERID])) 
    GROUP BY DBKASSA.KODAL_GT 
    ) AS OD_AL 
    RIGHT JOIN (
    (
    SELECT DBQAIME.KODALAN, Sum(DBQAIME.CEMIBORC) AS Su_CEMIBORC 
    FROM DBQAIME 
    WHERE (((DBQAIME.KODALAN)=[INBUYERID])) 
    GROUP BY DBQAIME.KODALAN 
    ) AS B_AL 
    RIGHT JOIN DBALAN AS AL ON B_AL.KODALAN = AL.KODALAN) ON OD_AL.KODAL_GT = AL.KODALAN 
    WHERE (((AL.KODALAN)=[INBUYERID])) 
]. AS A_B INNER JOIN DBQAIME AS Q ON A_B.KODALAN = Q.KODALAN) ON K_G.KODAL_GT = A_B.KODALAN) INNER JOIN (DBMAL AS M INNER JOIN (DBSA AS SA INNER JOIN [SELECT R2.KOD, R2.VID, R2.ADI 
    FROM DBRAB2 AS R2 
    WHERE (((R2.VID)=3))]. AS R2 ON SA.KODEMLNO = R2.KOD) ON M.KODMAL = SA.KODMAL) ON Q.QAINOM = SA.QAINOM 
WHERE (((Q.QAINOM)=[INSALEINVOICE])) 
ORDER BY M.TIP, M.TAMADI; 

, 그것은 MS Access에서 근무 2010 년 광산 액세스 2003

+1

미래에 당신이 읽을 수있는 질문을 생산하기 위해 같은 것을 [인스턴트 SQL 포맷터 (http://www.dpriver.com/pp/sqlformat.htm)를 사용하는 것 같아서. – Fionnuala

+0

제안 해 주셔서 감사합니다. 그러나 구문이 잘못되어 인스턴트 SQL 포매터가 그 사실을 알 수 없습니다. –

답변

1

입니다 무슨 일이있다하면 하위 쿼리 또는 파생 테이블은 이제 너무

[stuff here]. 

이 원인처럼 괄호된다는 것이다 편집 할 때 오류가 발생합니다.

가장 쉬운 방법은 메모장을 사용하거나 []를 사용하는 것입니다.()를 붙여 붙여 넣습니다.

시도 :

SELECT A_B.ALICI, 
     Q.QAINOM, 
     M.TIP, 
     Q.QATARIX, 
     Q.CEMIBORC, 
     R2.ADI AS SAT_NOV, 
     M.TAMADI, 
     M.MARK, 
     SA.MIQDAR, 
     SA.SAQIYM, 
     SA.CEMI, 
     SA.FAIZ, 
     A_B.BORC_SU, 
     A_B.MEBLEG, 
     A_B.FERQ, 
     K_G.CEMI_ODEN, 
     A_B.MOBTEL, 
     SA.NOTE 
FROM ((SELECT Round(SUM([DBKASSA].[MEBLEQ]), 3) AS CEMI_ODEN, 
       DBKASSA.KODAL_GT 
     FROM DBKASSA 
     WHERE (((DBKASSA.TIP) = 1) 
       AND ((DBKASSA.KODAL_GT) = [INBUYERID]) 
       AND ((DBKASSA.TARIX) = [INTILLDATE])) 
     GROUP BY DBKASSA.KODAL_GT) AS K_G 
     RIGHT JOIN ((SELECT AL.KODALAN, 
          AL.MOBTEL, 
          Iif([Su_CEMIBORC] IS NULL, 0, [Su_CEMIBORC]) 
                   AS 
          BORC_SU, 
          Iif([Su_MEBLEQ] IS NULL, 0, [Su_MEBLEQ]) 
                   AS 
          MEBLEG, 
          (Iif([Su_MEBLEQ] IS NULL, 0, [Su_MEBLEQ])) - (
          Iif([Su_CEMIBORC] IS NULL, 0, [Su_CEMIBORC])) 
                   AS 
                      FERQ, 
          AL ! OBYEKT & (Iif(AL ! NUMAY IS NOT NULL, 
              " - " & AL ! NUMAY)) AS 
               ALICI 
        FROM (SELECT DBKASSA.KODAL_GT, 
            SUM(DBKASSA.MEBLEQ) AS Su_MEBLEQ 
          FROM DBKASSA 
          WHERE 
        (((DBKASSA.TIP) = 1) 
         AND ((DBKASSA.KODAL_GT) = [INBUYERID])) 
          GROUP BY DBKASSA.KODAL_GT) AS OD_AL 
          RIGHT JOIN ((SELECT DBQAIME.KODALAN, 
               SUM(DBQAIME.CEMIBORC) AS 
               Su_CEMIBORC 
             FROM DBQAIME 
             WHERE ((
             (DBQAIME.KODALAN) = [INBUYERID])) 
             GROUP BY DBQAIME.KODALAN) AS B_AL 
             RIGHT JOIN DBALAN AS AL 
              ON B_AL.KODALAN = AL.KODALAN) 
          ON OD_AL.KODAL_GT = AL.KODALAN 
        WHERE (((AL.KODALAN) = [INBUYERID]))) AS A_B 
        INNER JOIN DBQAIME AS Q 
         ON A_B.KODALAN = Q.KODALAN) 
      ON K_G.KODAL_GT = A_B.KODALAN) 
     INNER JOIN (DBMAL AS M 
        INNER JOIN (DBSA AS SA 
           INNER JOIN (SELECT R2.KOD, 
                R2.VID, 
                R2.ADI 
              FROM DBRAB2 AS R2 
              WHERE (((R2.VID) = 3))) AS R2 
           ON SA.KODEMLNO = R2.KOD) 
        ON M.KODMAL = SA.KODMAL) 
     ON Q.QAINOM = SA.QAINOM 
WHERE (((Q.QAINOM) = [INSALEINVOICE])) 
ORDER BY M.TIP, 
      M.TAMADI; 
+0

나를 믿어 봤지만 도움은 안된다. –

+0

서식을 지정하면 문제를보다 쉽게 ​​볼 수 있습니다. – Fionnuala