[英]MS Access - JOIN using LIKE and AND
目的
制定销售报告,输出产品目录以展示新产品/现有产品。 报告详细信息包括:
CUSTOMER ID
) ITEM ID
和CUSTOMER ID
) ITEM ID
和CUSTOMER ID
) 首先,一点背景
最初,我开发了一些报告,重点介绍了公司( COMPANY ID
)的特定项目( ITEM ID
)的历史采购订单(最大( PURCHASE ORDER DATE
))。 但是,由于新产品也属于目录(没有PURCHASE ORDER DATE
历史记录),因此很快失败了。 更糟糕的是,即使产品是全新的,我们公司DEMAND FORECAST
对物品的需求( DEMAND FORECAST
)(为什么这样,我不知道)。
结果, CUSTOMER
和ITEM ID
无法直接关联(因为有时客户会显示新产品)。
更糟的是,一个CUSTOMER
可能有多个CUSTOMER NAMES
(例如“ Home Depot”,“ HOME DEPOT ONLINE”等)
方法
Customer IDs
表格, Customer Names
(已完成) Item ID
及其Inventory
(已完成) Purchase orders
)(最新的采购订单)表,包括Customer IDs
和Item IDs
(已完成) Customer ID
和Item ID
创建一个Demand Forecasts
表(已完成) Customer Name
”链接到“ Item ID
ITEM ID
和喜欢的 CUSTOMER NAME
,将“活动目录”表链接到“采购订单表”和“预测表”(因为1个客户可以使用一个名称的多个变体)。 注意:重申一下,之所以必须执行第3步和第4步,是因为一个公司可以有一个采购订单,但是没有任何预测; 或预测,但没有每个项目的先前采购订单。 结果,需要步骤5来巩固Company ID
和Item
之间的链接,而步骤6则增加了复杂性,因为我们的数据库搞砸了。
码
SELECT
[Active Catalog].[CUSTOMER NAME],
[Table - Item and Company Forecasted Sales].[COMPANY ID],
[Table - Item and Company Forecasted Sales].ITEM,
[Table - Item and Company Forecasted Sales].STYLE,
[Table - Item and Company Forecasted Sales].DESCRIPTION,
[Table - Item and Company Historic Sales].PRICE,
[Table - Item and Company Forecasted Sales].[ON-HAND QTY],
[Table - Item and Company Forecasted Sales].[FORECAST QTY],
[Table - Item and Company Historic Sales].[LATEST PO DATE]
INTO [Table - Summary]
FROM ([Active Catalog]
INNER JOIN [Table - Item and Company Forecasted Sales]
ON ([Active Catalog].STYLE = [Table - Item and Company Forecasted Sales].STYLE)
AND ([Active Catalog].[CUSTOMER NAME] LIKE '%' + [Table - Item and Company Forecasted Sales].[CUSTOMER NAME] + '%'))
INNER JOIN [Table - Item and Company Historic Sales]
ON ([Active Catalog].STYLE = [Table - Item and Company Historic Sales].STYLE)
AND ([Active Catalog].[CUSTOMER NAME] LIKE '%' + [Table - Item and Company Historic Sales].[CUSTOMER NAME] +'%')
GROUP BY
[Active Catalog].[CUSTOMER NAME],
[Table - Item and Company Forecasted Sales].[COMPANY ID],
[Table - Item and Company Forecasted Sales].ITEM,
[Table - Item and Company Forecasted Sales].STYLE,
[Table - Item and Company Forecasted Sales].DESCRIPTION,
[Table - Item and Company Historic Sales].PRICE,
[Table - Item and Company Forecasted Sales].[ON-HAND QTY],
[Table - Item and Company Forecasted Sales].[FORECAST QTY],
[Table - Item and Company Historic Sales].[LATEST PO DATE];
问题
ITEM ID
和 CUSTOMER NAME
的相对可能性加入一个表,因为如上所述,1个CUSTOMER ID
具有多个但相似的CUSTOMER NAMES
(例如HOMEDEPOT,HOMEDEPOT ONLINE)。 但是,我的代码似乎不正确。 参见: ... LIKE '%' + [Table - Item and Company Forecasted Sales].[CUSTOMER NAME] + '%'))
。 也许问题可能是由于使用了LIKE通配符。 尝试用*代替%。
看这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.