请每天使用MySql的Event Scheduler从另一个表的MAX行值中复制和更新一个表,这是正确的语法。这些任务显然超出了我对MySql的基本了解。
这是我所拥有的,但不起作用:
DELIMITER $$
CREATE
EVENT IF NOT EXISTS `Statement_Opening_Closing_Bal`
ON SCHEDULE EVERY 1 DAY STARTS '00:00:30'
DO BEGIN
-- GET CUSTOMER UNIQUE IDs
SELECT id
FROM customer AS Customer_UniqueIDs;
-- copy associated audit records
SELECT transactiondate, credit, debit, amount FROM passbook.Customer_UniqueIDs WHERE transactionid=MAX(transactionid) AS LastTransactionEachDay;
-- INSERT MAX ROW TRANSACTION FOR ABOVE SELECT INTO StatementofAccountRef.Customer_UniqueIDs,
INSERT INTO StatementofAccountRef.Customer_UniqueIDs (tid, entrydate, dtdebit, dtcredit, dtbalance)
VALUES(NULL, LastTransactionEachDay.entrydate, LastTransactionEachDay.dtdebit, LastTransactionEachDay.dtcredit, LastTransactionEachDay.dtbalance)
END */$$
DELIMITER ;
为澄清起见,我有一个名为 Customer 的表,该表的名为“ id ”的列包含所有客户的唯一ID。
现在我有几个表,其名称为 Passbook.id (例如Passbook2,Passbook3等),其中列名称中的“ id ”对应于“唯一”表“ 客户”中的“ id ”。每个 Passbook.id 都有名为交易日期,贷方,借方,金额的列。
我还有几个表,其名称为 StatementofAccountRef.id ,其中列名称中的“ id ”也对应于唯一的“ id ”在“客户”表中。每个 StatementofAccountRef.id 都有名为 tid,entrydate,dtdebit,dtcredit,dtbalance的列。
我想做的是: 1.从Table Customer中获取每个“ id”,并使用它来选择每个客户的存折。
从每个passbook.id中获取“ transactiondate”,“ debit”,“ credit”,“ amount”列的最大行值。通过最大行值,我的意思是与事件调度程序运行时一样,passbook.id中的最后或最新行条目。不管它们是否更改,只要每天是特定时间(00.00.30),只要它们是表passbook.id中的最新条目即可。
将值插入到每个对应的StatementofAccountRef.id列的输入日期,dtdebit,dtcredit,dtbalance中。 StatementofAccountRef.id表中的“ tid”列设置为AUTO INCREMENT。 entrydate(在StatementofAccountRef.id中)为DATETIME,与passbook.id中的transactiondate一样。
请任何有工作帮助的人表示赞赏。谢谢。
显示表格数据和样本条目:
表客户
CREATE TABLE `customer` (
`id` int(5) NOT NULL,
`name` varchar(255) NOT NULL,
`surname` varchar(255) DEFAULT NULL,
`gender` char(1) NOT NULL,
`dob` date NOT NULL,
`nominee` varchar(255) NOT NULL,
`account` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`mobile` varchar(15) NOT NULL,
`email` varchar(255) NOT NULL,
`accessid` varchar(60) NOT NULL,
`password` varchar(255) NOT NULL,
`branch` varchar(255) NOT NULL,
`Branch_Code` varchar(255) NOT NULL,
`lastlogin` datetime NOT NULL,
`accstatus` varchar(255) NOT NULL,
`accnumber` bigint(10) DEFAULT NULL,
`CustomerRefNum` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`CustomerTokenRef` varchar(255) DEFAULT NULL,
`Acc_Manager` varchar(255) DEFAULT NULL,
`currency` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
63, John, Denon, M, 1976-12-10, Jonny Lee, GoldPlus, 200 Monroe Street #233 Rockville MD 2085, cmailultimate@gmail.com, 0458ac7536f4101f597820c7f9136b2354f2f156, Zone C, Team 1, 2018-11-18 03-14-45, Active, 12113, CUDG23299-TYWB02323, Raymond Crow, Dollars
表存折63
CREATE TABLE `passbook63` (
`transactionid` int(5) NOT NULL,
`transactiondate` date DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`surname` varchar(255) DEFAULT NULL,
`fullnames` varchar(255) DEFAULT NULL,
`branch` varchar(255) DEFAULT NULL,
`Branch_Code` varchar(255) DEFAULT NULL,
`credit` int(10) DEFAULT NULL,
`debit` int(10) DEFAULT NULL,
`amount` float(10,2) DEFAULT NULL,
`narration` varchar(255) DEFAULT NULL,
`recall_value` varchar(10) DEFAULT NULL,
`transactionRef` varchar(255) DEFAULT NULL,
`transactionreceipts` varchar(255) DEFAULT NULL,
`receiving_Inst` varchar(255) DEFAULT NULL,
`beneficiary_account` varchar(255) DEFAULT NULL,
`beneficiary_name` varchar(255) DEFAULT NULL,
`transaction_datetime` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
样本数据:19,2017-10-15 06:06:06,John,Denon,John Denon,C区,团队1,6000,6000,6000,对客户101的两次下注,0,WERW39489923,三重确认要求的结果数12113哈里森·杜伊(Harrison Due)2017年10月19日01:06:06
AccountRef63表对帐单
CREATE TABLE `StatementofAccountRef63` (
`tid` int(11) NOT NULL AUTO_INCREMENT,
`entrydate` datetime DEFAULT NULL,
`dtdebit` int(11) NOT NULL,
`dtcredit` int(11) NOT NULL,
`dtbalance` int(11) NOT NULL,
PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
样本数据:011,2018-02-28 06:06:06,36000,36000,96000