Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL语法大小写返回未知错误消息;然后是“1”;_Sql - Fatal编程技术网

使用SQL语法大小写返回未知错误消息;然后是“1”;

使用SQL语法大小写返回未知错误消息;然后是“1”;,sql,Sql,大家好,下面有人能帮我吗?我尝试过将DEC改为INT,但没有效果,我的系统运行的是DERBY语法,它接受了CASE,所以不确定下面的内容为什么不起作用 收到的错误消息是: SELECT G."GROUP" , G."GROUP.DESC" , G.SIZE , G."SIZE.DESC" , G."WH.AREA" , G.OSQTY AS "SALES.RA

大家好,下面有人能帮我吗?我尝试过将DEC改为INT,但没有效果,我的系统运行的是DERBY语法,它接受了
CASE
,所以不确定下面的内容为什么不起作用

收到的错误消息是:

SELECT
    G."GROUP"
    , G."GROUP.DESC"
    , G.SIZE
    , G."SIZE.DESC"
    , G."WH.AREA"
    , G.OSQTY AS "SALES.RATIO.QTY"
    , F.QTY AS "MAX HOLDING"
    , E."DUE OUT OSQTY" AS  "OUT THIS WEEK"
    , D."OUT THIS WEEK OSQTY"
    , C."DUE IN THIS WEEK OSQTY"
    , B."CURRENT STOCK" 
    , A."ACTUAL ORDERS"
    , H.NAME
    , (CASE 
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (90 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (91 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (93 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (900 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (901 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (903 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (904 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        ELSE CAST('99999999999'AS DEC) 
    END) AS "salesratiosum"
FROM "vol.sales.ratio" G
    INNER JOIN "vol.max.holding" F
    ON (F.SIZE = G.SIZE AND F."PRODUCT.GROUP" = G."GROUP" AND F.WH = G."WH.AREA")
    LEFT JOIN "vol.due.out.this.week" E
    ON (F.WH = E."WH.AREA" AND F.SIZE = E.SIZE AND F."PRODUCT.GROUP" = E."GROUP")
    LEFT JOIN "vol.due.out.next.week" D
    ON (F.WH = D."WH.AREA" AND F.SIZE = D.SIZE AND F."PRODUCT.GROUP" = D."GROUP")
    LEFT JOIN "vol.due.in.this.week" C
    ON (F.WH = C.BRANCH AND F.SIZE = C. SIZE AND F."PRODUCT.GROUP" = C."GROUP")
    INNER JOIN "vol.current.stock.holding" B
    ON (F.WH = B.WAREHOUSE AND F.SIZE = B.SIZE AND F."PRODUCT.GROUP" = B."GROUP")
    LEFT JOIN "vol.actual.orders" A
    ON (F.WH = A.BRANCH AND F.SIZE = A.SIZE AND F."PRODUCT.GROUP" = A."GROUP")
    INNER JOIN Warehouses H
    ON (F.WH = H.WAREHOUSE)
GROUP BY 
    G."GROUP"
    , G."GROUP.DESC"
    , G.SIZE
    , G."SIZE.DESC"
    , G."WH.AREA"
    , G.OSQTY
    , F.QTY
    , E."DUE OUT OSQTY"
    , D."OUT THIS WEEK OSQTY"
    , C."DUE IN THIS WEEK OSQTY"
    , B."CURRENT STOCK"
    , A."ACTUAL ORDERS"
    , H.NAME
BIC00004。DAL01008。访问数据库时出错

语法错误:在第1行第416列遇到“THEN1”

我的查询如下:

SELECT
    G."GROUP"
    , G."GROUP.DESC"
    , G.SIZE
    , G."SIZE.DESC"
    , G."WH.AREA"
    , G.OSQTY AS "SALES.RATIO.QTY"
    , F.QTY AS "MAX HOLDING"
    , E."DUE OUT OSQTY" AS  "OUT THIS WEEK"
    , D."OUT THIS WEEK OSQTY"
    , C."DUE IN THIS WEEK OSQTY"
    , B."CURRENT STOCK" 
    , A."ACTUAL ORDERS"
    , H.NAME
    , (CASE 
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (90 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (91 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (93 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (900 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (901 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (903 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        WHEN CAST (G."WH.AREA" AS DEC) = CAST (904 AS DEC) THEN CAST (SUM(G.OSQTY) AS DEC)
        ELSE CAST('99999999999'AS DEC) 
    END) AS "salesratiosum"
FROM "vol.sales.ratio" G
    INNER JOIN "vol.max.holding" F
    ON (F.SIZE = G.SIZE AND F."PRODUCT.GROUP" = G."GROUP" AND F.WH = G."WH.AREA")
    LEFT JOIN "vol.due.out.this.week" E
    ON (F.WH = E."WH.AREA" AND F.SIZE = E.SIZE AND F."PRODUCT.GROUP" = E."GROUP")
    LEFT JOIN "vol.due.out.next.week" D
    ON (F.WH = D."WH.AREA" AND F.SIZE = D.SIZE AND F."PRODUCT.GROUP" = D."GROUP")
    LEFT JOIN "vol.due.in.this.week" C
    ON (F.WH = C.BRANCH AND F.SIZE = C. SIZE AND F."PRODUCT.GROUP" = C."GROUP")
    INNER JOIN "vol.current.stock.holding" B
    ON (F.WH = B.WAREHOUSE AND F.SIZE = B.SIZE AND F."PRODUCT.GROUP" = B."GROUP")
    LEFT JOIN "vol.actual.orders" A
    ON (F.WH = A.BRANCH AND F.SIZE = A.SIZE AND F."PRODUCT.GROUP" = A."GROUP")
    INNER JOIN Warehouses H
    ON (F.WH = H.WAREHOUSE)
GROUP BY 
    G."GROUP"
    , G."GROUP.DESC"
    , G.SIZE
    , G."SIZE.DESC"
    , G."WH.AREA"
    , G.OSQTY
    , F.QTY
    , E."DUE OUT OSQTY"
    , D."OUT THIS WEEK OSQTY"
    , C."DUE IN THIS WEEK OSQTY"
    , B."CURRENT STOCK"
    , A."ACTUAL ORDERS"
    , H.NAME

请显示出现问题的查询。这不是该查询。您使用的是哪个DBMS?
“vol.sales.ratio”
看起来像一个非常奇怪的表名。这是我在我们使用的报表编写软件中创建的一个虚拟表(我知道表名已被拍手)。表从我们的U2(宇宙)中提取数据数据源,并按定义的时间表缓存结果(允许报告编写和可视化仪表板的速度,因为它们在查看时不需要实时)希望这是有意义的?我建议对每个表执行一个简单的
SELECT
,因为表是虚拟的,所以在创建表时可能会触发错误。我认为
AS DEC
应该在所有这些行的括号外
然后强制转换(SUM(G.OSQTY)AS DEC)
。事实上,它甚至不应该存在,因为当它别名为“salesratiosum”时,它无论如何都不会被使用。编辑:整个case语句可能需要一些工作。你不需要像DEC那样的