如果有人可以帮助我,将不胜感激。
我可以说:
A)500行数据
您可以看到我正在执行4个步骤。我如何在1步中做到这一点。我知道子查询,但是当我在访问它时说“子查询不支持。
这是我的实际代码,它可以正常工作:
1)这可以帮助我找到2个文件中匹配的项目。
SELECT [STEP 1: SYSCO_CITY_UPDATE].*, [MAT_INFO_NHS_UNIQUE_UPC].[Category Description]
INTO [STEP 2: SYSCO_ITEM_CAPTURED]
FROM [STEP 1: SYSCO_CITY_UPDATE]
LEFT JOIN MAT_INFO_NHS_UNIQUE_UPC
ON [STEP 1: SYSCO_CITY_UPDATE].[MANUF PROD CODE] = VAL([MAT_INFO_NHS_UNIQUE_UPC].[Material]);
2)这可以帮助我找出不匹配数据的 REST :
SELECT [STEP 2: SYSCO_ITEM_CAPTURED].* INTO [STEP 3: SYSCO_REST]
FROM [STEP 2: SYSCO_ITEM_CAPTURED]
WHERE [STEP 2: SYSCO_ITEM_CAPTURED].[CATEGORY DESCRIPTION] IS NULL;
3)这有助于我从其余数据中找出匹配的UPC:
SELECT [STEP 3: SYSCO_REST].*, [MAT_INFO_NHS_UNIQUE_UPC].[Category Description]
INTO [STEP 4: SYSCO_UPC_CAPTURED]
FROM [STEP 3: SYSCO_REST]
LEFT JOIN MAT_INFO_NHS_UNIQUE_UPC
ON [STEP 3: SYSCO_REST].[SCC] = VAL([MAT_INFO_NHS_UNIQUE_UPC].[SCC for Case or Pallet]);
然后我在表1和表3上做一个UNION
感谢任何人都可以提供帮助。
山姆
答案 0 :(得分:1)
它可能很难看,但嵌套查询应该是可能的。
查询1
SELECT [STEP 1: SYSCO_CITY_UPDATE].*, [MAT_INFO_NHS_UNIQUE_UPC].[Category Description]
FROM [STEP 1: SYSCO_CITY_UPDATE]
LEFT JOIN MAT_INFO_NHS_UNIQUE_UPC
ON [STEP 1: SYSCO_CITY_UPDATE].[MANUF PROD CODE] = VAL([MAT_INFO_NHS_UNIQUE_UPC].[Material])
Query2
SELECT [STEP 3: SYSCO_REST].*, [MAT_INFO_NHS_UNIQUE_UPC].[Category Description]
FROM (SELECT [STEP 2: SYSCO_ITEM_CAPTURED].*
FROM (SELECT [STEP 1: SYSCO_CITY_UPDATE].*, [MAT_INFO_NHS_UNIQUE_UPC].[Category Description]
FROM [STEP 1: SYSCO_CITY_UPDATE]
LEFT JOIN MAT_INFO_NHS_UNIQUE_UPC
ON [STEP 1: SYSCO_CITY_UPDATE].[MANUF PROD CODE] = VAL([MAT_INFO_NHS_UNIQUE_UPC].[Material])) AS [STEP 2: SYSCO_ITEM_CAPTURED]
WHERE [STEP 2: SYSCO_ITEM_CAPTURED].[CATEGORY DESCRIPTION] IS NULL) AS [STEP 3: SYSCO_REST]
LEFT JOIN MAT_INFO_NHS_UNIQUE_UPC
ON [STEP 3: SYSCO_REST].[SCC] = VAL([MAT_INFO_NHS_UNIQUE_UPC].[SCC for Case or Pallet]);
现在从Query1和Query2构建UNION查询。 UNION也可以使用嵌套,但是我不知道UNION中需要的字段,因此无法显示该结构。如果*字段通配符在每个SELECT中以相同顺序拉入相同的字段,则只需对两个语句进行UNION。请记住,第一个SELECT定义字段名称和数据类型。
保存到'temp'表中可以加快处理速度。但是,不能在1条SQL语句中完成保存到多个表中的操作。生成VBA过程以顺序运行SQL操作。
答案 1 :(得分:0)
由于MS-Access不支持CTE,因此也许可以使用纯表表达式。尝试看看是否可行:
TheNewFunc()