mysql update stats
BEGIN
SET @SEL_DATE := (SELECT MAX(DATE(date))as date FROM `sales` GROUP BY `agent` ORDER BY `date` ASC LIMIT 1);
SET @DATE := (SELECT MAX(date) FROM `stats` WHERE date < @SEL_DATE);
IF @DATE <> @SEL_DATE THEN
SET @SUM_WMR := (SELECT SUM(amount) FROM `sales` WHERE DATE(date) = @DATE AND currency = 'WMR');
SET @SUM_WMZ := (SELECT SUM(amount) FROM `sales` WHERE DATE(date) = @DATE AND currency = 'WMZ');
SET @SUM_WME := (SELECT SUM(amount) FROM `sales` WHERE DATE(date) = @DATE AND currency = 'WME');
SET @SUM_WMU := (SELECT SUM(amount) FROM `sales` WHERE DATE(date) = @DATE AND currency = 'WMU');
SET @SUM_WMR := IF(@SUM_WMR > 0, @SUM_WMR, 0);
SET @SUM_WMZ := IF(@SUM_WMZ > 0, @SUM_WMZ, 0);
SET @SUM_WME := IF(@SUM_WME > 0, @SUM_WME, 0);
SET @SUM_WMU := IF(@SUM_WMU > 0, @SUM_WMU, 0);
SET @SUMMAR := IF(@SUM_WMR > 0, @SUM_WMR * (SELECT `wmr` FROM `curs` WHERE date = @DATE), 0);
SET @SUMMAZ := IF(@SUM_WMZ > 0, @SUM_WMZ * (SELECT `wmz` FROM `curs` WHERE date = @DATE), 0);
SET @SUMMAE := IF(@SUM_WME > 0, @SUM_WME * (SELECT `wme` FROM `curs` WHERE date = @DATE), 0);
SET @SUMMAU := IF(@SUM_WMU > 0, @SUM_WMU, 0);
SET @EQUIV := ROUND(@SUMMAR + @SUMMAZ + @SUMMAE + @SUMMAU, 2);
SET @SALES := (SELECT COUNT(*) FROM `sales` WHERE DATE(date) = @DATE);
SET @PLATI := (SELECT COUNT(*) FROM `sales` WHERE DATE(date) = @DATE AND shop = 'plati');
SET @AVG := (SELECT ROUND(AVG(100 / (sales.price / sales.amount)), 2) FROM `sales` WHERE DATE(date) = @DATE);
SET @AVG := IF(@AVG > 0, @AVG, 0);
INSERT INTO `stats` VALUES (@DATE, 0, 0, 0, 0, 0, 0, 0, @SALES, @PLATI, @SALES-@PLATI, @SUM_WMR, @SUM_WMZ, @SUM_WME, @SUM_WMU, @EQUIV, @AVG)
ON DUPLICATE KEY UPDATE sales=@SALES, plati=@PLATI, other=@SALES-@PLATI, wmr=@SUM_WMR, wmz=@SUM_WMZ, wme=@SUM_WME, wmu=@SUM_WMU, equiv=@EQUIV, rew=@AVG;
ELSE
INSERT INTO `test` VALUES (NOW(), 'data menshe');
END IF;
END
<form id='stats' method='post' action='index.php?page=parser&agent=".$_GET['agent']."&action=stats'></form>
<input type='submit' id='stats' form='stats' value='Записать статистику за ".$stats_date."'>
if($_GET['action'] == "stats"){
}
$sales_date = db_get_cell($link, "SELECT MAX(DATE(date))as date FROM `sales` GROUP BY `agent` ORDER BY `date` ASC LIMIT 1");
$stats_date = db_get_cell($link, "SELECT MAX(date) + INTERVAL 1 DAY FROM `stats` WHERE rew<>'0'");