2014-05-21 3 views
0

MySQL 데이터베이스가 있는데, varbinary (20) 유형의 열에 데이터가 포함 된 테이블이 포함되어 있습니다.<?> 연산자가 내 varbinary (20) sql 데이터에서 예상대로 작동하지 않는 이유는 무엇입니까?

왜 그런지 물어 보지 마십시오.

이 데이터는 학생이 과정의 일부로 완료 한 모듈 수를 나타냅니다. 코스를 완료로 표시하기 위해 완료해야하는 모듈의 수를 나타내는 criterias라는 또 다른 열이 있습니다. 나는이 완료 과정의 수를하고있는 중이 야 때, 나는 행을 계산하려는

completed = criteria AND completed != 0 (...oh and where the student is enrolled) 

(경우에 따라서는 기준은 0 그래서 학생이의 0을 완료 한 모든 과정을 건너 뛰려면 있기 때문에 0 모듈).

또한 varbinary 열의 0 값은 30입니다 (누군가 설명을 제공 할 수있는 경우). 따라서 완료해야하는 모듈이 3 개인 경우 기준 열의 값이 33

그래서 내 SQL 쿼리는 다음과 같습니다 -

count(CASE WHEN (completed <> 30 AND (completed = criterias) AND enrolled = 'Yes') THEN 1 END) AS Total_Complete 

그러나이 수는 내> 30 <를 완료하면 작동하지 않는 것으로 생각된다, 그래서 학생이 0 0의 과정을 완료 한 과정을 포함하는 것 같다.

+0

아 잘 발견 - 그래 난이 <사용되었다>하지만 난 질문 제목에 잘못 입력했습니다. <> 연산자를 포함하도록 질문을 업데이트했습니다. – undefined

답변

0

나는이 글을 쓰면서 나는 내 자신의 질문에 대답했지만 이드는 다른 누군가를 도왔다 고 생각했다.

이 솔루션은 어떤 이유 0 (30)에 의해 표현 된 사실을 무시하고 내 SQL을 변경했다 -이 일을

count(CASE WHEN (completed <> 0 AND (completed = criterias) AND enrolled = 'Yes') THEN 1 END) AS Total_Complete