我是Oracle SQL新手,我被要求做一些場景來學習不同的表達式等等。Oracle中缺少關鍵字錯誤 - 錯誤語法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