Portál AbcLinuxu, 7. května 2025 03:58
datetime EL_celkem AD1.. 2015-08-24 11:44:01 419.533 xxxx.. 2015-08-24 11:42:01 419.533 xxxx.. 2015-08-24 11:40:01 419.534 xxxx..dotazem
SELECT * FROM `tabulka` WHERE `datetime` LIKE '%20%%-%%-%% %%:00%' ORDER BY `datetime` DESC LIMIT 24nebo
SELECT * FROM `tabulka` WHERE `datetime` LIKE '%20%%-%%-%% 00:00%' ORDER BY `datetime` DESC LIMIT 31
datetime EL_celkem AD1.. 2015-08-24 00:00:01 419.533 xxxx.. 2015-08-23 00:00:01 409.413 xxxx.. 2015-08-22 00:00:01 403.741 xxxx..dostanu stavy elektroměru po hodinových nebo po denních přírůstcích. A tady jsem se zasekl a proto prosím o radu jak ty přírůstky sečíst a dostat hodnoty spotřeby za hodinu nebo za den. Stejný dotaz jsem našel na http://www.abclinuxu.cz/poradna/databaze/show/396499 akorád s vodoměrem a PostgreSQL. Bohužel na otázku rADOna umi neco takovyho mysql? byla Pokud vím, tak ne. Musel by jste si pomoci cursorem. A to je něco co netuším co je a nedokážu to vygooglovat, nejsem programátor ale elektronik a nemůžu s tím hnout. Děkuji
select sum(EL_celkem) from table where `datetime` ..
SELECT DATE_FORMAT(`datetime`, "%d.%m.%Y") AS `Den`, MAX(EL_celkem) - MIN(EL_celkem) AS `Spotřeba` FROM tabulka GROUP BY 1 ;Spotřeba za hodinu
SELECT DATE_FORMAT(`datetime`, "%d.%m.%Y") AS `Den`, CONCAT(DATE_FORMAT(MIN(`datetime`), "%h:%i"), " - ", DATE_FORMAT(MAX(`datetime`), "%h:%i")) AS `Hodiny`, MAX(EL_celkem) - MIN(EL_celkem) AS `Spotřeba` FROM tabulka GROUP BY DATE_FORMAT(`datetime`, "%d.%m.%Y %h") ;
CREATE PROCEDURE p() BEGIN CREATE TEMPORARY TABLE `tmp` AS SELECT * FROM `tabulka`; ALTER TABLE `tmp` ADD `EL_den_pred` DECIMAL(10,4) NOT NULL AFTER `EL_celkem`; ALTER TABLE `tmp` ADD `spotreba` DECIMAL(10,4) NOT NULL AFTER `EL_den_pred`; UPDATE `tmp` p SET p.`EL_den_pred` = (SELECT t.`EL_celkem` FROM `tabulka` t WHERE t.`datetime` = p.`datetime` - INTERVAL 1 DAY ); UPDATE `tmp` SET `spotreba` = (`EL_celkem` - `EL_den_pred`); SELECT YEAR(`datetime`), MONTH(`datetime`), SUM(`spotreba`) FROM `tmp` WHERE 1 GROUP BY DATE_FORMAT(`datetime`, '%Y%m'); SELECT * FROM `tmp`; END //
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.