2014-09-10 2 views
-3

저는 SQL에 익숙하지 않아서 왜이 쿼리가 작동하지 않는지 이해하지 못합니다. 나는 누군가가 나를 도와 줄 수 있기를 바랬다. 미리 감사드립니다.새로운 SQL 쿼리

SELECT COUNT (Results.Output) 
FROM RESULTS 
WHERE Results.Output <> 'Simulated' AND Results.Output <> '-' AND 
     Results.Det = 'ASBACM_SZ OR Results.Det = 'ASBACM AND Result.Detdate >= ? 
     AND Result.Detdate <= ? 
+0

이 친절도 게시 할 수 있습니다. – XxXk5XxX

+3

"* not working *"은 내가 아는 DBMS에서 유효한 오류 메시지가 아닙니다. ** 정확한 ** 오류 메시지를 추가하십시오. 또한 사용중인 DBMS를 명시해야합니다 (Postgres? Oracle?). –

+2

@a_horse_with_no_name 이것은 SQL Server 2014 Enterprise의 새로운 기능입니다. 'SET OBFUSCATED_ERR_MSGS ON' 명령으로 오류 메시지에 의미있는 정보를 제공하여 보안상의 세부 사항을 알려주지 않도록 할 수 있습니다. ;) – DeanOC

답변

2

시도 일부 괄호를 추가하고 추가 누락 된 따옴표 :

SELECT COUNT(Results.[Output]) FROM Results 
WHERE Results.[Output] <> 'Simulated' 
    AND Results.[Output] <> '-' 
    AND (
     Results.Det = 'ASBACM_SZ' 
      OR 
     Results.Det = 'ASBACM' 
    ) 
    AND Result.Detdate >= ? 
    AND Result.Detdate <= ? 
+0

추가적으로 SQL을 처음 사용하는 사람이라면 '?'값을 변경해야합니다. 이를 실행할 수있는 특정 날짜까지 그러나 일부 프로그래밍 언어에서이 쿼리를 사용하는 경우 '?' 내가 알고 있어야 할 다른 주제 인 매개 변수입니다. – jomsk1e

+0

안녕하세요, 도움을 주셔서 감사합니다. 내가 얻는 오류는 "SQL 문에서 오류 위치는 다음과 같습니다. 15 [구문 분석 (SELECT 절의 1 열)] – Aaron

+0

내 대답이 업데이트되었습니다. 오류의 원인은 'OUTPUT'이 예약되어 있다는 것입니다 키워드에 'advantage-database-server' 태그를 추가 할 수 있습니까? –

1

작은 따옴표 (일부 닫는 따옴표를 놓치고) 폐쇄해야하고 당신이있을 때 운영자는 종종 그룹화 할 필요가 'and'와 'or'의 혼합.

이 작업을 시도 할 수 있습니다 :

select count (*) 
from results 
where results.[output] <> 'Simulated' 
    and results.[output] <> '-' 
    and (results.det = 'ASBACM_SZ' or results.det = 'ASBACM') --group the 'or' 
    and result.detdate >= 'somedate' 
    and result.detdate <= 'otherdate' 

축약 형태 : SQL 오류가이 쿼리를 실행할 때 무슨

select count (*) 
from results 
where results.[output] not in ('Simulated', '-') 
    and results.det in ('ASBACM_SZ', 'ASBACM') 
    and result.detdate between 'somedate' and 'otherdate' 
+1

'[output]'은 (표준) SQL의 합법적 인 식별자가 아니며, Aaron이 어떤 DBMS를 사용하고 있는지 아직 알지 못합니다. –

+0

죄송합니다. Advantage Database를 사용하고 있습니다. – Aaron