-2
"잘못된 번호"가 표시됩니다Oracle sqlplus query
아무도 내가 뭘 잘못하고 있는지 안내 할 수 있습니까 ???
select TO_CHAR(a.START_TIME,'YY-MON-DD HH24') as START_TIME,
count(*) AS NbOperations,
SUM(CASE WHEN OPERATION_RESULT=0 THEN 1 ELSE 0 END) AS Success,
SUM(CASE WHEN OPERATION_RESULT=200 THEN 1 ELSE 0 END) AS Cancel,
SUM(CASE WHEN OPERATION_RESULT=203 THEN 1 ELSE 0 END) AS AppletInternalError,
SUM(CASE WHEN OPERATION_RESULT=406 THEN 1 ELSE 0 END) AS TimeoutWaitForCard,
SUM(CASE WHEN OPERATION_RESULT=413 THEN 1 ELSE 0 END) AS BillingError,
SUM(CASE WHEN OPERATION_RESULT=1000 THEN 1 ELSE 0 END) AS ABANDONNED,
SUM(CASE WHEN OPERATION_RESULT=1004 THEN 1 ELSE 0 END) AS ABANDON_FOR_NEW_OPERATION,
SUM(CASE WHEN OPERATION_RESULT NOT IN (0,200,203,406,413,1000,1004) THEN 1 ELSE 0 END) AS NbOthers
from MyTable1 a,
MyTable2 b
where OPERATION_TYPE in (2,3,4,5)
and a.OPERATION_TYPE=b.OPERATION_ID
and a.START_TIME >= to_timestamp('&1', 'YYYY-MM')
and a.START_TIME < to_timestamp('&2', 'YYYY-MM') + interval '1' month
group by TO_CHAR(a.START_TIME,'YY-MON-DD HH24')
order by TO_CHAR(START_TIME,'YY-MON-DD HH24');
@scaisEdge이 (작은 따옴표 약 1) 확실히 구문은 작은 따옴표를 필요로하기 때문에 ** ** 이유가, 처리하지 않을 때입니다 간격. 설명서에서 "간격 리터럴"을 읽으십시오 (https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#i38598). 그 이유는 무엇입니까? 몰라; 우리는 테이블의 설명이나 데이터가 없기 때문에 추측하기 어렵습니다. 시도했지만 실패 함 :) – Littlefoot
대체 변수가 아닌 SQL * Plus와 어떤 관련이 있습니까? 그것들에 어떤 가치를 사용하고 있습니까? 그들은'2018-01' (따옴표 없음)과 같을 필요가 있습니다. –
그건 그렇고, TO_CHAR (START_TIME, 'YY-MON-DD HH24')로 주문 하시겠습니까? 그러면 2 월과 1 월 이전에 4 월과 8 월이 주어집니다 (영어 월 이름으로 가정). –