SAP Business One 中的 SQL 查询出现“必须指定表以供选择”错误

问题描述 投票:0回答:1

我正在 SAP Business One 中处理 SQL 查询,并且不断遇到以下错误:

选择时必须指定表格。

我使用的查询如下:

SELECT  
      o."DocNum",
      (
            SELECT TOP 1 w1."ItemCode"
            FROM WOR1 w1
            WHERE w1."DocEntry" = o."DocEntry"
              AND (w1."LineNum" IS NULL OR w1."LineNum" = '')
            ORDER BY w1."LineNum"
        ) AS "WOR1_ItemCode",
      t."U_Material_Laenge",
      w."PlannedQty"
      
FROM    WOR1 w
        JOIN "WRE_PPS_WorkstepPlanning" p ON p."PODocEntry" = w."DocEntry"
                                        AND p."POLineNum" = w."LineNum"
        JOIN OWOR o ON o."DocEntry" = w."DocEntry"
        JOIN OITM i2 ON i2."ItemCode" = w."ItemCode"
        LEFT OUTER JOIN "WRE_POLineWorkstepStatus" ws ON ws."PODocEntry" = w."DocEntry"
                                                    AND ws."POLineNum" = w."LineNum"
        LEFT JOIN "OITT" t ON o."ItemCode" = t."Code"
        
WHERE   
      o."Status" IN ('P', 'R')
      AND COALESCE(ws."Status", 'OPEN') = 'OPEN'
      AND w."ItemCode" LIKE '[%0]'
      AND i2."ItemName" LIKE '[%1]'

每次尝试执行此查询时,我都会收到上述错误。我怀疑这可能与 SELECT 子句中的子查询有关,或者可能与我使用 JOIN 条件的方式有关,但我无法查明确切的原因。

SAP Business One 版本 10。

数据库:SQL Server。

目标:我想检索满足特定条件的 WOR1 表中的文档编号 (o."DocNum")、第一个项目代码 (w1."ItemCode"),以及其他详细信息,例如 t."U_Material_Laenge"和 w.“计划数量”。

问题:

有人可以解释一下为什么会发生此错误以及如何解决它吗?我需要考虑 SAP Business One SQL 语法或子查询处理方式的特定内容吗?

任何见解或建议将不胜感激。

sql-server subquery sapb1
1个回答
0
投票

在您的查询的这个块中

WHERE
o."Status" IN ('P', 'R')
AND COALESCE(ws."Status", 'OPEN') = 'OPEN'
AND w."ItemCode" LIKE '[%0]'
AND i2."ItemName" LIKE '[%1]'

更改为

WHERE
o."Status" IN ('P', 'R')
AND COALESCE(ws."Status", 'OPEN') = 'OPEN'
AND o."ItemCode" LIKE '[%0]'
AND i2."ItemName" LIKE '[%1]'

在队列中,

AND w."ItemCode" LIKE '[%0]' 被改为 AND o.“ItemCode” LIKE '[%0]'

o。在 ItemCode 之前显式引用条件中的“OWOR”表,这应该可以解决查询中的错误

© www.soinside.com 2019 - 2024. All rights reserved.