Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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 ms access中With语句的替代方案_Sql_Ms Access - Fatal编程技术网

Sql ms access中With语句的替代方案

Sql ms access中With语句的替代方案,sql,ms-access,Sql,Ms Access,我有一个sql查询 WITH Stocktype AS (SELECT SUBSTRING([T2_LOOK].[KEY],4,6) AS StkType, T2_LOOK.F1 AS MasterStocktype FROM T2_LOOK WHERE Left([T2_LOOK].[KEY],3)='CAT'), SELECT * FROM ((T2_BRA INNER JOIN T2_HEAD ON T2_BRA.REF = T2_H

我有一个sql查询

WITH Stocktype AS (SELECT SUBSTRING([T2_LOOK].[KEY],4,6) AS StkType, T2_LOOK.F1 AS MasterStocktype
FROM T2_LOOK
WHERE Left([T2_LOOK].[KEY],3)='CAT'),
SELECT  *                           
FROM ((T2_BRA INNER JOIN T2_HEAD ON T2_BRA.REF = T2_HEAD.REF)  INNER JOIN Stocktype ON T2_HEAD.SUPPLIER = Stocktype .SuppCode)

我需要这个查询在ms access中工作,我知道在ms access中您不能使用该语句,有人知道其他方法吗,或者我如何让它在access中工作?提前感谢

您可以将其替换为子查询:

SELECT  *                           
FROM (T2_BRA INNER JOIN
      T2_HEAD
      ON T2_BRA.REF = T2_HEAD.REF
     ) INNER JOIN
     (SELECT MID([T2_LOOK].[KEY], 4, 6) AS StkType,
             T2_LOOK.F1 AS MasterStocktype
      FROM T2_LOOK
      WHERE Left([T2_LOOK].[KEY], 3) = "CAT"
     ) as Stocktype
     ON T2_HEAD.SUPPLIER = Stocktype.SuppCode;

当然,这仍然不起作用(即使对MS Access语法进行了修复),因为
Stocktype
没有名为
SuppCode
的列。但是,这是您原始查询的一个问题,因此不清楚如何修复它。

我对查询进行了很多简化,这是我在列名上的一个输入错误,但您的解决方案有效!谢谢:)
WITH
本质上是子查询的简写,用于更可读的SQL语句,尤其是在多次使用时。