我试图在mysql中实现一个过程,根据计算返回天数。输入购买日期(添加日期),然后进行计算。应该是比较直截了当的,但我似乎无法让它发挥作用。我不确定这是否适合“select语句”,如果这非常简单,我很抱歉,但这是我第一次运行程序。
如果有人能告诉我该怎么做,我将不胜感激。
谢谢!
我有一个名为“calculation”(表3)的表,其中包含字段“elap\u yend”(int),在调用存储过程之前,该字段当前为空。
表1:
cid parent_cat category_name category_life
22 0 Office Equipment-M' 1080
23 0 Office Equipment-O' 1800
24 0 F & F' 3600
25 0 Staff assets', 1800
27 0 Motor vehicle', 2880
28 0 Air conditioner' 5400
29 0 Land & Building', 2160
30 0 Temporary Partition 365
31 0 Electrical Fittings 3600
32 0 Generator' 5400
33 0 Software' 1800
34 0 Computer-N' 2160
35 24 chair' 3600
表2:
pid cid product_name product_price added_date cgst sgst igst total depre
60 22 RHFL\test\001 20000 2018-11-02 1800 1800 0 23600 o
61 27 RHFL\test\002 13500 2018-11-02 2345 2345 0 15930 12
62 29 RHFL\test\003 65000 2018-11-02 2345 2345 0 76700 12
63 31 RHFL\test\004 10000 2018-11-02 2345 2345 0 1180 12
64 24 RHFL\test\005 10000 2018-11-02 2345 2345 0 11800 1
65 24 RHFL\test\006 13500 2018-11-02 2345 2345 0 15930 12
66 34 RHFL\test\007 13500 2018-11-02 2345 2345 0 15930 12
67 22 RHFL\test\008 65004 2018-11-02 2345 2345 0 76704 12
68 25 RHFL\test\009 10000 0000-00-00 2345 2345 0 11800 12
69 22 RHFL\test\010 65000 0000-00-00 2345 2345 0 76700 10
70
表3:存储过程的输出应反映在下表中:
end_date elap_yend rem_days depre_cur cur_wdv depre_next next_wdv acc_depre
2018-11-02 0 0 0 0 0 0
输出计算:
上面是带零的样本输出。它不是精确的输出,但是每当我调用存储过程时,它都应该执行以下计算。
DELIMITER $$
CREATE PROCEDURE calculationTemp(
in till_yend date,
)
BEGIN
DECLARE till_yend date;
SELECT datediff(now(),added_date) INTO till_yend
FROM products
IF till_yend > 0 THEN
SET till_yend = select datediff(now(),added_date) from products;
ELSEIF till_yend < 0 THEN
SET till_yend = 0;
END IF;
insert into calculationTemp
END$$
计算工作:
elapsede year end:elapsed\u yend=添加日期(从产品表(编号:2))到每年的x年3月31日。
这两个日期之间的天数
剩余天数=类别寿命-(添加日期(从产品(编号:1))到日期之间的日期差)
category_life(来自categories表(no:1))例如:mobile它的寿命将是1080天。
本年折旧:折旧额=(折旧/类别寿命)*已用年数
本年减记值:
当前折旧=折旧-当前折旧
下一年折旧:折旧\u next=(折旧/类别\u寿命)*d d=每年1/4/x至结束日期之间的天数差(从计算表)
明年减记价值:
next\u wdv=当前\u wdv-折旧\u next
累计折旧:
累计折旧=当前折旧+下一步折旧
1条答案
按热度按时间zengzsys1#
得到我的答案张贴在这里得到任何关于改进我的商店程序的想法。谢谢您!!!