2013-04-01 8 views
0

구문 오류가 발생했습니다. 여러 번 변경하고 다시 형식을 지정하고지도를 그리기 위해 노력했습니다. 이제 내 머리가 폭발하기 직전에 절망에서 벗어난 나는 이것을 눈치 챈 사람에게로 향하고 있습니다.구문 오류 SQL 액세스 중첩 IIF ISNULL 문

나는 그것이 IIF 문을 별개의 수를 잡으려고 노력하지만, 아마도이 질문에 덜 기술 및 눈을 가진에 대한 더 밀어 수 있습니다

...

나는 WHERE /의 FROM 문제를 얻지 않는다 추가 절을 제공합니다.

나는 완전히 뭔가 잘못하고있어 경우에 저를 도와주세요 :

(SELECT DISTINCT(COUNT(IIF(ISNULL(CombineTables.[Product Description]), 

IIF(ISNULL(CombineTables.[Product Number (OEM)]), 


IIF(ISNULL(CombineTables.[Product Number (under supplier PA)],"Incomplete Data",CombineTables.[Product Number (under supplier PA)])), 

CombineTables.[Product Number (OEM)]), 

CombineTables.[Product Description]))) 
FROM CombineTables WHERE [PA#]=Forms!PADiagnosticsForm!Combo2 AND "QTR." & " " & CombineTables.Quarter & "-" & CombineTables.Year=Forms!PADiagnosticsForm!List68) 

FROM CombineTables 
WHERE CombineTables.[Price Agreement Price]*CombineTables.Quantity-CombineTables.[Total Extended Price]<>0 And CombineTables.[PA#]=Forms!PADiagnosticsForm!Combo2 And "QTR." & " " & CombineTables.Quarter & "-" & CombineTables.Year=Forms!PADiagnosticsForm!List68; 

을 내가 미리 감사합니다.

+0

간단한'IIF' /'ISNULL' 조합으로 성공 했습니까? –

+1

이것은 내가 본 중에 가장 모호하고 복잡한 쿼리 중 하나입니다. 나는 그것을 읽거나 심지어 당신의 의도가 무엇인지 짐작하기가 정말 힘들다. 게다가 더 큰 또 다른 쿼리에서 이것을 추출한 것처럼 보이고, 누락 된 것이 있거나, 유효하지 않은 것으로 보입니다 ('(')로 시작합니다.) 또한 당신의'where 절은 이상한 것들을 가지고 있습니다. QTR. "&" "', 단순히"QTR. "을 사용하면 안되는 이유는 무엇입니까?이 쿼리를 먼저 정리하고 WHERE 절을 제거하거나 하드 코드 된 값을 사용하여 디버깅 한 다음 모든 것을 제거하고 SELECT 비트를 구성하십시오. 비트, 아주 시간이. –

+0

쿼리는 함수로 'DISTINCT'를 처리하려고 시도하는 것 같지만 Access SQL의 함수가 아닙니다. – HansUp

답변

1

는 쿼리 문제 몇 가지를 다음과 같습니다

  1. 그것은 완전하지 않습니다. 첫 번째 SELECT 앞에있는 (은 두 번째 앞에 표현을 만듭니다 FROM CombineTables. 따라서 선도적 인 부분이 누락되었습니다. SELECT. 그것이 당신의 전체 질문이 아니라면, 당신을 도우려는 사람들에게 도움이되지 않습니다.
  2. NZ(A,B) is identical to and more concise than IIF (ISNULL (A, B, A)가)`
  3. 당신의 선택 COUNT 패턴은 모든 IIF(ISNULL의 특히 의심이다. 결과적으로 COUNT -ed가되는 것은 NULL이 아니므로 COUNT의 블록 전체를 다시 작성하여 COUNT(1)으로 재사용 할 수 있습니다. COUNT SUM은 SUM이 계수되는 실제 값을 고려하지 않고 값이 NULL (0으로 계산되고 NULL이 아닌 값이 1로 계산 됨)인지 여부 만 고려합니다.