我有一个库存MySQL数据库。结构如下:
table_1 fields: itmcode, avgcost
table_2 fields: itmcode(FK to table_1(itmcode)), quantity报告的基础是我需要过去日期的库存估值明细项目的时间。
我可以运行一个查询来查看当前的股票估值,但我也希望能够看到之前某个日期的股票估值。我该怎么做?对于数量,我可以添加销售,并从当前日期到报告要求的任何日期反向扣除购买,但平均成本是最新的,因为每次发布购买都会更新。
SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval
FROM table_1
JOIN table_2 ON table_1.itmcode = table_2.itmcode是否可以直接在MySQL中调度此任务,或者是否有其他解决方案?
发布于 2012-03-10 17:10:10
您至少有两个基本选项:
1、看看Event Scheduler
首先创建表格,例如。带字段的stock_dumps
项目代码,数量,平均成本,ttlval,dump_date (日期时间)
CREATE EVENT `Dumping_event` ON SCHEDULE
EVERY 1 DAY
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT ''
DO BEGIN
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
END请按照说明如何在上面发布的链接上启用计划程序。注意:旧版本的mysql没有事件调度程序
2、创建cron作业/windows计划作业:
创建sql文件:
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;调度此命令:
mysql -uusername -ppassword < /path/to/sql_file.sql发布于 2017-01-02 01:48:05
有一些通用工具可以做到这一点,比如EyeShare或AutoSQL.net。EyeShare是一种更通用的IT流程自动化工具,而AutoSQL是专门用于调度查询并将其输出(到Excel或CSV)的单一用途工具。
https://stackoverflow.com/questions/9621355
复制相似问题