2

我在连接时遇到问题 - 问题出在:我有一个包含 17 位销售人员的数据库,每个销售人员都有自己的总计,例如费用、预付款和佣金。在我的数据库中,大约有 200 个客户,最多可以有 3 个销售人员。那是少数,但确实存在。每个销售人员都在该帐户的发票上获得报酬。我的一些销售人员只是一个帐户的第二个销售人员,这意味着他们永远不是第一个,所以如果我将销售人员加入发票 - 他没有任何发票,因为他从来不是销售人员 1。我可以提取发票当我只查看发票时,他作为推销员 2,但每 8 周我需要将他作为推销员 1 的费用加入到他作为推销员 2 的发票中。我无法让它工作或想出一个解决方案。

有没有办法可以将销售员查询中的 salesman1 加入到 slmn1 或 slmn2 或 slmn3 上的发票/付款查询?

这个例子太复杂了:

FROM qryFinalWeek
INNER JOIN QryFW ON qryFinalWeek.SLMN = QryFW.SLMN2 OR QryFW.SLMN3 OR QryFW.Salesrep1
WHERE (((QryFW.PDATE)=[FDATE]+4));

此示例仅在他是第一个推销员的情况下提供发票,因此如果他是第二个,我将无法获得任何佣金:

WHERE (((qryFinalWeek.SLMN)=[Forms]![frFWDATE]![Text0]) AND ((QryFW.PDATE)=[FDATE]+4)) OR (((QryFW.SLMN2)=[Forms]![frFWDATE]![Text0]) AND ((QryFW.PDATE)=[FDATE]+4)) OR (((QryFW.SLMN3)=[Forms]![frFWDATE]![Text0]) AND ((QryFW.PDATE)=[FDATE]+4))

任何反馈表示赞赏!

4

1 回答 1

2

数据结构为您带来了问题。我的建议是从您的客户表中删除销售人员(假设每个客户的数据多于相关的销售人员)并将他们添加到一个名为 Salesmen_Customers 或类似的新表中。此表将包含销售人员和客户之间的多对多关系

这是您当前的结构

旧数据结构

这是新的结构

新的数据结构

这应该会显着简化查询结构。如果您的销售人员的深度超过 3,这也将轻松扩展。如果您有兴趣进一步阅读数据库设计主题,我建议您使用SQL 反模式。如果你真的嫁给了你的数据库结构,你可以查询你的出路,但我不推荐它。

于 2012-04-17T13:04:53.433 回答