Oracle SQL을 처음 접했으므로 여러 가지 식을 배우기 위해 몇 가지 시나리오를 수행해야합니다.오라클의 누락 된 키워드 오류 - 잘못된 구문 WHERE 표현
현재이 문장을 작업하고 있지만 구문에 문제가있어 올바른 위치에서 표현식을 얻으려고합니다.
내가 잘못하고있는 것을 보면서 올바른 구문을 배우도록 신경 쓰지 않는다면 많이 감사하겠습니다.
Sale, SaleDetail, OrderStatus, Warehouse, User 및 StockDetail 테이블에서 모든 것을 찾아야합니다. 내가 찾을 필요가
필드는 saleno, serialstart, serialend, 제품 설명 (레이블 필드), 판매 상태 (saleid (내 생각)), WarehouseName (WH.NAME)
여기에 아래의 코드가 있습니다 나는 지금까지 썼다. 아래
완료 코드, 몇 가지 표현과 조건을 변경 :
SELECT
S.SALENO,
SD.SERIALSTART,
SD.SERIALEND,
SDT.LABEL,
USR.USERNAME,
WH.NAME
FROM
ITR_SALE,
ITR_SALEDETAIL,
ITR_ORDER,
ITR_WAREHOUSE,
ITR_USER,
ITR_STOCKDETAIL
JOIN ITR_SALE S
JOIN ITR_SALEDETAIL SD ON S.ID = SD.SALENO
JOIN ITR_WAREHOUSE WH ON SD.ID = WH.NAME
JOIN ITR_ORDER ODR ON WH.ID = ODR.STATUSID
JOIN ITR_USER USR ON ODR.ID = USR.USERNAME
JOIN ITR_STOCKDETAIL ON USR.ID = SDT.LABEL
WHERE S.LASTSTATUSCHANGETIME
BETWEEN ('2016-01-01 00:00:00' AND '2016-12-31 23:59:59')
AND STATUSID = ('COMPLETED');
다음은 편집이
ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
Error at Line: 21 Column: 1
오류 메시지를 다음과 같습니다.
SELECT
S.SALENO,
SD.SERIALSTART,
SD.SERIALEND,
SDA.LABEL,
USR.USERNAME,
WH.NAME
FROM
ITR_SALE S
INNER JOIN
ITR_SALEDETAIL SD ON S.ID = SD.SALEID
INNER JOIN
ITR_ORDERSTATUS ODS ON SD.ID = ODS.ID
INNER JOIN
ITR_WAREHOUSE WH ON ODS.ID = WH.NAME
INNER JOIN
ITR_USER USR ON WH.ID = USR.USERNAME
INNER JOIN
ITR_STOCKDETAIL SDA ON USR.ID = SDA.LABEL
WHERE 'DATE' BETWEEN '2016-01-01' AND '2016-12-31'
AND S.STATUSID = '4';`
마지막 두 줄에서 괄호를 제거하십시오. – mathguy