0

从我上面的图表中,我需要将库存量合计为我需要的 关系

  • 某辆自行车的销售总额
  • 为某辆自行车生产的总和

然后将总数存储在“InStock”中

我试图创建查询,但它们似乎都没有按我的意愿工作。请问有人可以帮我吗?这应该相当简单!

4

1 回答 1

1

您应该有一个库存表 BikeInfo 是一个 Part Production 和 Sales 仅在他们添加和删除库存方面有影响。

就像报废、库存对账或供应一样,将自行车标记为已售出,这样您就不会再次出售它,或者因为您有足够的“库存”而不再费心制造

问自己这个问题,你将如何记录回报。你可以有 BikesReturned 表。现在您的库存已生产 - 已售出 + 已退货...接下来是 BikesWeCannotFindInStock 表和 BikesWeDoNotKNowWhereThisCameFrom 表:) 或者您可以更改 BikesSold 中的 TotalSold...

我在这种系统上做了很多,你不想走这些路线,相信我。

PS你会遇到类似的问题,试图将bikeinfo中的成本与bikesold中的售价联系起来。一个的多少取决于成本是成本还是价格或价值。三个不同的数字...

要获取架构中的当前位置,不记得 Access 是否允许您进行嵌套连接

创建一个名为 say QProduction 的查询

Select BikeID,Sum(Built) as Produced From Production Group By BikeID

另一个叫 qSales

Select BikeID, Sum(TotalSold) as Sold From BikesSold Group By BikeID

然后它只是几个外连接说

Select b.BikeName,p.Produced, s.Sold (p.Produced - s.Sold) as [In Stock] 
From BikeInfo b
left join qProduction p On p.BikeID = b.ID
Left Join qSales s on s.BikeID = b.ID

未经测试,可能是错字,但这个想法是合理的。

设计的一个大问题是,如果在录制或制作过程中出现问题,您不知道您的库存是什么,而协调它的唯一方法是创建一个虚拟的生产或销售记录。

编辑更新查询

Select b.ID, (p.Produced - s.Sold) as [In Stock] 
From BikeInfo b
left join qProduction p On p.BikeID = b.ID
Left Join qSales s on s.BikeID = b.ID

并称之为 qInStock

然后

Update BikeInfo b
Set b.InStock = q.[In Stock]
inner join qInStock q On q.ID = b.ID

应该做的工作

该死的复杂,打赌你希望你有一个股票表。

于 2013-03-03T13:23:33.297 回答