пожалуйста, мне нужен правильный синтаксис для копирования и обновления таблицы каждый день из значений строки MAX другой таблицы с помощью MySql Event Scheduler.Задачи явно превосходят мои базовые знания 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 ;
Для пояснения у меня есть таблица с именем Клиент со столбцом с именем " id ", который содержит уникальный идентификатор для всех клиентов.
Теперь у меня есть несколько таблиц с именами, такими как Passbook.id (например, Passbook2, Passbook3,и т. д.), где " id " в именах столбцов соответствует уникальному " id " в таблице " Customer ".Каждый Passbook.id имеет столбцы с именем транзакция, кредит, дебет, сумма.
И у меня также есть несколько таблиц с именами StatementofAccountRef.id где " id " в именах столбцов также соответствует уникальному " id " в таблице "Customer".Каждый StatementofAccountRef.id имеет столбцы с именами tid, entrydate, dtdebit, dtcredit, dtbalance.
Что я хочу сделать, это: 1. Взять каждый «id»из таблицы Customer и используйте ее для выбора passbook.id * каждого клиента
Получите максимальные значения строки из каждого passbook.id для столбцов «транзакция», «дебет», «кредит», «сумма».Под значениями Max Row я имею в виду последнюю или последнюю запись строки в passbook.id на момент запуска планировщика событий.Это значение будет выбираться каждый день в определенное время (00.00.30) независимо от того, изменяются они или нет, поскольку они являются самой последней записью в таблице passbook.id
Вставьте значения вкаждая соответствующая запись в столбце StatementofAccountRef.id вступает в дату, dtdebit, dtcredit, dtbalance.Для столбца "tid" в таблицах StatementofAccountRef.id установлено значение AUTO INCREMENT.Элемент entrydate (в StatementofAccountRef.id) имеет значение DATETIME, как и datedation транзакции в passbook.id.
Любая рабочая помощь приветствуется, ребята, пожалуйста.Спасибо.
Показать данные таблицы и примеры записей:
Таблица клиентов
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
Таблица passbook63
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, Джон, Денон, Джон Денон, Зона C, Команда 1, 6000, 6000, 6000, Двойная ставка на клиента 101, 0, WERW39489923, Требуется тройное подтверждение результатов, 12113, Harrison Due, 2017-10-19 01: 06: 06
Таблица Statement ofAccountRef63
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