使用SQL语法大小写返回未知错误消息;然后是“1”;
大家好,下面有人能帮我吗?我尝试过将DEC改为INT,但没有效果,我的系统运行的是DERBY语法,它接受了使用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
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那样的