我有一个包含订单表和库存表的数据库。
订单商品表每1个数量的布局有1条记录,所以如果一个人下单7'ABC和4'XYZ的订单,我会得到11个记录。队列数量的SQL查询帮助
id, item, qtyNum 01 ABC 1 02 ABC 2 03 ABC 3 04 ABC 4 05 ABC 5 06 ABC 6 07 ABC 7 08 XYZ 1 09 XYZ 2 10 XYZ 3 11 XYZ 4
库存表中有一个量/项目每个位置的布局,这样我就可以有库存的东西20,但它可以(在最坏的情况下),在20个不同的地点。因此,对于我们的示例,我可能有以下库存:
Qty, Item, Loc, Date 3 'ABC' in Location L1 with date 1990 2 'ABC' in Location L2 with date 1992 5 'ABC' in Location L3 with date 2003 4 'ABC' in Location LH with date 2004 1 'XYZ' in Location L4 with date 1990 2 'XYZ' in Location L5 with date 1993 9 'XYZ' in Location L6 with date 2001 2 'XYZ' in Location LJ with date 2004
* H和J没有特别意义!只要驱动点回家,他们是最新
结果集应该拉尽可能多的从最老的位置上的第一,所以在这个例子中我结束了以下“挑选队列”:
Pick 3 'ABC' from L1 Pick 2 'ABC' from L2 Pick 2 'ABC' from L3 Pick 1 'XYZ' from L4 Pick 2 'XYZ' from L5 Pick 1 'XYZ' from L6
我的确有一个解决方案,它涉及到很多视图,这些视图通过外连接和疯狂的东西连接多次,我只是很好奇这个问题是否存在简单/优雅的解决方案?我可以在代码中做到这一点没有问题,但在SQL中我不是大师。
MSSQL 2008
在你的订单商品表中,qtyNum应该增加每一行,或者每行应该是1。如果他们下订单7个ABC项目,看起来好像你认为该表格会显示28个数量。或者我误解了qtyNum专栏的观点? – 2009-10-23 18:36:04
它只是提供项目顺序的额外数据。其类似项目ID 10是该订单中项目“XYZ”的第三数量。 对于所有的意图和目的,可能只是忽略qtyNum – Hatch 2009-10-23 18:41:25