AS/400(绿屏)SQL 未找到列变量
AS/400 (Green screen) SQL column variable not found
早上好,
我在 AS/400(绿屏)中 运行 宁一个 SQL 查询,并且在提取别名列名时遇到问题。
这是我的脚本:
/* Join forecast info with item warehouse info */
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) AS Sales_less_October
FROM
/* Summarizing forecast data in a SQL query */
(SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR) AS f
JOIN
/* Select "Qty sold this period" */
(SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0) AS iw
ON f.item = iw.ITNOIB AND
f.whse = iw.WHIDIB
WHERE Sales_less_October <> 0
ORDER BY Sales_less_October ASC
当我 运行 我收到错误:
Column or global variable SALES_LESS_OCTOBER not found.
但是,如果我将脚本更改为以下内容,它将按预期工作:
/* Join forecast info with item warehouse info */
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) /* AS Sales_less_October */
FROM
/* Summarizing forecast data in a SQL query */
(SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR) AS f
JOIN
/* Select "Qty sold this period" */
(SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0) AS iw
ON f.item = iw.ITNOIB AND
f.whse = iw.WHIDIB
WHERE (QSMOIB - October) <> 0
ORDER BY (QSMOIB - October) ASC
我只是将 "Sales_less_October" 替换为 (QSMOIB - October)。
我真的很希望能够使用别名,因为它比显示器更清晰 "Numeric Expression":
非常感谢,抱歉,我无法上传数据...它在我们的服务器上。
如果你想在 WHERE
和 ORDER BY
子句中使用你的别名,你可以将查询的其余部分嵌套在 WITH ()
:
WITH ONE AS (
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) AS Sales_less_October
FROM (
SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR
) AS f
JOIN (
SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0
) AS iw
ON f.item = iw.ITNOIB
AND f.whse = iw.WHIDIB
)
SELECT *
FROM ONE
WHERE Sales_less_October <> 0
ORDER BY Sales_less_October ASC
早上好,
我在 AS/400(绿屏)中 运行 宁一个 SQL 查询,并且在提取别名列名时遇到问题。
这是我的脚本:
/* Join forecast info with item warehouse info */
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) AS Sales_less_October
FROM
/* Summarizing forecast data in a SQL query */
(SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR) AS f
JOIN
/* Select "Qty sold this period" */
(SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0) AS iw
ON f.item = iw.ITNOIB AND
f.whse = iw.WHIDIB
WHERE Sales_less_October <> 0
ORDER BY Sales_less_October ASC
当我 运行 我收到错误:
Column or global variable SALES_LESS_OCTOBER not found.
但是,如果我将脚本更改为以下内容,它将按预期工作:
/* Join forecast info with item warehouse info */
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) /* AS Sales_less_October */
FROM
/* Summarizing forecast data in a SQL query */
(SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR) AS f
JOIN
/* Select "Qty sold this period" */
(SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0) AS iw
ON f.item = iw.ITNOIB AND
f.whse = iw.WHIDIB
WHERE (QSMOIB - October) <> 0
ORDER BY (QSMOIB - October) ASC
我只是将 "Sales_less_October" 替换为 (QSMOIB - October)。
我真的很希望能够使用别名,因为它比显示器更清晰 "Numeric Expression":
非常感谢,抱歉,我无法上传数据...它在我们的服务器上。
如果你想在 WHERE
和 ORDER BY
子句中使用你的别名,你可以将查询的其余部分嵌套在 WITH ()
:
WITH ONE AS (
SELECT item, itmdsc,
today,
October, QSMOIB,
(QSMOIB - October) AS Sales_less_October
FROM (
SELECT item, itmdsc, whse,
today, range,
(wk01 + wk02 + wk03 + wk04) AS October
FROM FCSTCUR
) AS f
JOIN (
SELECT ITNOIB, WHIDIB, QSMOIB
FROM ITEMBLL0
) AS iw
ON f.item = iw.ITNOIB
AND f.whse = iw.WHIDIB
)
SELECT *
FROM ONE
WHERE Sales_less_October <> 0
ORDER BY Sales_less_October ASC