MySQL滚动库存有效期

时间:2014-06-27 17:15:59

标签: php mysql

我希望得到一些指导,这将指导我在平衡库存和到期日的正确方向。 我想知道每种味道中有多少味道'我已经留下了库存和库存的到期日期。

我的采购订单表中收到的所有商品(风味)都带有时间戳,我记录到期日期(即数量300 exp_date 7/04/14,数量200 exp_date 7/14/14)。

所有订单(每种口味)都经过处理和加盖时间戳(数量2 6/27/14 ......),因此我可以总结在给定日期/周内处理的订单或其他任何内容。

什么是最好的解决方案(临时表,查询或其他)可以识别并允许我显示我有数据98 w / exp_date为7/04和数量200 w / exp日期为7/14从上面的例子中显示实时?

这是架构....

-- Table structure for table `flavor`
--
CREATE TABLE `flavor` (
  `id` int(4) NOT NULL auto_increment,
  `pfamily` int(5) NOT NULL,
  `model` varchar(10) NOT NULL,
  `UPC` varchar(17) default NULL,
  `active_flavor` tinyint(1) NOT NULL default '1',
  `description` varchar(150) NOT NULL,
  `price` decimal(7,2) NOT NULL,
  `priority` tinyint(2) default NULL,
  `weight` decimal(6,3) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='flavors' AUTO_INCREMENT=892 ;

-- Table structure for table `orders`
--

CREATE TABLE `orders` (
  `id` int(6) NOT NULL auto_increment,
  `customer_id` int(3) NOT NULL,
  `owner_id` int(3) NOT NULL,
  `ordnum` int(10) NOT NULL,
  `orddate` int(6) NOT NULL,
  `buyer` varchar(50) NOT NULL,
  `model` varchar(10) NOT NULL,
  `f_id` int(4) NOT NULL default '0',
  `ord_qty` int(3) NOT NULL,
  `quantity` int(3) NOT NULL,
  `wh_price` decimal(7,2) NOT NULL,
  `invoice_price` decimal(7,2) default '0.00',
  `last_updated` int(10) default '0',
  `RMA` tinyint(1) default '0',
  `RMA_num` int(10) default '0',
  `RMA_qty` int(3) default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=269339 ;

-- Table structure for table `p_orders`
--
CREATE TABLE `p_orders` (
  `id` int(6) NOT NULL auto_increment,
  `vendor_id` int(3) NOT NULL,
  `owner_id` int(3) NOT NULL,
  `p_ordnum` int(10) NOT NULL,
  `p_orddate` int(6) NOT NULL,
  `f_id` int(4) NOT NULL,
  `model` varchar(10) NOT NULL,
  `quantity` int(3) NOT NULL,
  `qty_rcvd` int(3) default '0',
  `GR` tinyint(1) default '0',
  `exp_date` date default '0000-00-00',
  `date_rcvd` date default '0000-00-00',
  `u_date_rcvd` int(10) default NULL,
  PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9216 ;

对一个模型使用简单查询

SELECT flavor.id, flavor.model,orders.orddate,orders.quantity  
FROM flavor 
left join orders on orders.f_id = flavor.id
WHERE flavor.id = '1'

我收到了订单

id  model       orddate quantity
1   1000-0001   140622  1
1   1000-0001   140622  1
1   1000-0001   140622  15
1   1000-0001   140622  1
1   1000-0001   140622  1
1   1000-0001   140622  1
1   1000-0001   140622  2
1   1000-0001   140622  2
1   1000-0001   140623  1
1   1000-0001   140623  1
1   1000-0001   140623  2
1   1000-0001   140624  1
1   1000-0001   140624  1

现在进入库存的内容,每个都有不同的到期日期

id  model       p_orddate   quantity
1   1000-0001   140615          90
1   1000-0001   140622          72

订单的总和= 80 p_orders的总和= 162

所以输出应该是我剩下的10个,剩余的是6/15发货的到期日期,72个剩下的是6/22发货的到期日期。我希望这能更好地解释

0 个答案:

没有答案