2016-07-15 36 views
0

爲什麼當我試圖執行它時,這個SQL查詢會說「命令沒有正確結束」?當我試圖執行它時,爲什麼這個SQL查詢會說「命令未正確結束」?

 SELECT 
"VENDER"."ALIAS", 
"VENDERINVOICE"."INVOICENO", 
"VENDERINVOICE"."INVDATE", 
"VENDERINVOICE"."AMOUNT", 
"PO"."PONUMBER", 
"VENDERINVOICE"."POSTDATE" AS "PAY DATE", 
"VENDERINVOICE"."POSTDATE" AS "DISTRIBUTION", 
"PO"."CALLSLIPNO", 
case PO.SUBIND 
     when 'Y' then 'SU' 
     when 'N' then 'MA' 
    end as SMCOST, 
"PO"."JOBTYPEID", 
"VENDERINVOICE"."NET_AMOUNT", 
(("TAXCODE"."TAXRATE" + 5)*.01)*"VENDERINVOICE"."NET_AMOUNT" - "VENDERINVOICE"."SALES_TAX_AMOUNT" "ACCRUE AMMOUNT", 
"PO"."TAXCODE" 

FROM 
    ((("STARPO"."VENDERPOITEM" "VENDERPOITEM" INNER JOIN "STARPO"."PO" "PO" ON "VENDERPOITEM"."PO_KEY"="PO"."PO_KEY") INNER JOIN "STARPO"."VENDERINVOICE" 

"VENDERINVOICE" ON "VENDERPOITEM"."VENDERINVOICE_KEY"="VENDERINVOICE"."VENDERINVOICE_KEY") INNER JOIN "STARPO"."VENDER" "VENDER" ON 

"VENDERINVOICE"."VENDER_KEY"="VENDER"."VENDER_KEY") INNER JOIN "STARPO"."TAXCODE" "TAXCODE" ON "PO"."TAXCODE"="TAXCODE"."TAXCODE" 

    GROUP BY 
"VENDER"."ALIAS", 
"VENDERINVOICE"."INVOICENO", 
"VENDERINVOICE"."INVDATE", 
"VENDERINVOICE"."AMOUNT", 
"PO"."PONUMBER", 
"VENDERINVOICE"."POSTDATE" AS "PAY DATE", 
"VENDERINVOICE"."POSTDATE" AS "DISTRIBUTION" 

WHERE 
    "VENDERINVOICE"."INVDATE">= :START_DATE 
    AND "VENDERINVOICE"."INVDATE" <= :END_DATE 
    AND "PO"."PONUMBER" <> 100256 
+0

'哪裏'應該在'group by'之前... – sgeddes

+1

對於所有表名稱和字段名稱,語法似乎無效。 – Jocelyn

+0

我知道「對他們自己而言」,但不是所有的大寫字母都會在下午2點之前把你的眼睛炸出來? – Drew

回答

0

基於一些評論,並試圖以更標準的方式格式化(我知道有很多標準...)。

  • 去掉引號
  • WHERE移動到正確的地方
  • 刪除不必要的括號從連接(是他們有必要嗎?)
  • 移動,以SELECT子句

試試這個:

SELECT 
VENDER.ALIAS, 
VENDERINVOICE.INVOICENO, 
VENDERINVOICE.INVDATE, 
VENDERINVOICE.AMOUNT, 
PO.PONUMBER, 
VENDERINVOICE.POSTDATE AS PAY DATE, 
VENDERINVOICE.POSTDATE AS DISTRIBUTION, 
PO.CALLSLIPNO, 
case PO.SUBIND 
     when 'Y' then 'SU' 
     when 'N' then 'MA' 
    end as SMCOST, 
PO.JOBTYPEID, 
VENDERINVOICE.NET_AMOUNT, 
((TAXCODE.TAXRATE + 5)*.01)*VENDERINVOICE.NET_AMOUNT - VENDERINVOICE.SALES_TAX_AMOUNT ACCRUE AMMOUNT, 
PO.TAXCODE 

FROM STARPO.VENDERPOITEM VENDERPOITEM 
INNER JOIN STARPO.PO PO 
    ON VENDERPOITEM.PO_KEY = PO.PO_KEY 
INNER JOIN STARPO.VENDERINVOICE VENDERINVOICE 
    ON VENDERPOITEM.VENDERINVOICE_KEY = VENDERINVOICE.VENDERINVOICE_KEY 
INNER JOIN STARPO.VENDER VENDER 
    ON VENDERINVOICE.VENDER_KEY = VENDER.VENDER_KEY 
INNER JOIN STARPO.TAXCODE TAXCODE 
    ON PO.TAXCODE=TAXCODE.TAXCODE 

WHERE VENDERINVOICE.INVDATE >= :START_DATE 
    AND VENDERINVOICE.INVDATE <= :END_DATE 
    AND PO.PONUMBER <> 100256 

GROUP BY 
    VENDER.ALIAS, 
    VENDERINVOICE.INVOICENO, 
    VENDERINVOICE.INVDATE, 
    VENDERINVOICE.AMOUNT, 
    PO.PONUMBER, 
    VENDERINVOICE.POSTDATE 
相關問題