나는 이렇게 트랜잭션 테이블을 가지고있다. 4 개의 필드 : time id type moneyMysql if-clause 시퀀스
유형 중 하나에는 3 개의 다른 하위 유형 (21,22,23)이 있으며 여기에서 ID를 기반으로 추가 유형을 작성한 다음 날짜 및 유형 당 돈을 계산합니다. 나는 그렇게하고있다.
select date(time), sum(money),
case
when type=2 and id<100 then type=21
when type=2 and id between 100 and 499 then type=22
when type=2 and id>=500 then type=23
when type<>2 then type
end as type
from transactionsTable
where type in (1,2,3,4,21,22,23) and date(time)>='2014-11-01' group by 1,3
이상한 결과 중 하나는 type = 0을 얻었고, where 절 내에서 필터링했습니다. 두 번째 이상한 점은 내가 새로 만든 유형 21,22,23을 전혀 얻지 못한다는 것입니다!
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
에서 결과를 포함하는 데에 유형을 참조 할 수 있습니다 결과 집합을 평가합니다. 그는 핵심 실수를 정확히 지적했다. 그럼에도 불구하고 나는 "유형"의 실수를 이해하지 못했다. – AVX