Sql ms access中With语句的替代方案
我有一个sql查询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
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语句,尤其是在多次使用时。