· 4 years ago · May 27, 2021, 05:28 PM
1-- --------------------------------------------------------
2-- Host: 127.0.0.1
3-- Versione server: 10.4.18-MariaDB - mariadb.org binary distribution
4-- S.O. server: Win64
5-- HeidiSQL Versione: 11.2.0.6213
6-- --------------------------------------------------------
7
8/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
9/*!40101 SET NAMES utf8 */;
10/*!50503 SET NAMES utf8mb4 */;
11/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
12/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
13/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
14
15
16-- Dump della struttura del database sensorhub
17CREATE DATABASE IF NOT EXISTS `sensorhub` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
18USE `sensorhub`;
19
20-- Dump della struttura di funzione sensorhub.get_stazione
21DELIMITER //
22CREATE FUNCTION `get_stazione`(`indirizzoMac` VARCHAR(50),
23 `operazione` INT
24) RETURNS int(11)
25BEGIN
26
27-- tipo opezione 0 = inseriento e 1 = lettura
28
29DECLARE mstazione INT ;
30
31 -- Recupero indice della stazione (se esiste)
32 SET mstazione = (SELECT idx FROM tbl_hub WHERE chiave = indirizzoMac);
33
34 /* testo se sto facendo inserimento */
35 if operazione = 0 then
36
37 -- Se non esiste significa che è la prima volta è creo oassociazione
38 if mstazione IS NULL then
39 INSERT INTO tbl_hub (chiave) VALUE (indirizzoMac);
40 set mstazione = (SELECT idx FROM tbl_hub WHERE chiave = indirizzoMac);
41 else
42 set mstazione = -1;
43 END if;
44
45 ELSE
46
47 -- Se non esiste stazione significa inseriremento errato/violazione privacy
48 if mstazione IS NULL then
49 set mstazione = -1;
50 END if;
51
52 END if;
53
54 -- ritorno risultato
55 RETURN mstazione;
56
57END//
58DELIMITER ;
59
60-- Dump della struttura di procedura sensorhub.sp_fill_tbl_bme280
61DELIMITER //
62CREATE PROCEDURE `sp_fill_tbl_bme280`(
63 IN `idxrow` INT,
64 IN `temperatura` DECIMAL(10,2),
65 IN `umidita` DECIMAL(10,2),
66 IN `pressione` DECIMAL(10,2),
67 IN `altitudine` DECIMAL(10,2)
68)
69BEGIN
70
71
72INSERT INTO tbl_bme280 (idxrow, temperatura, umidita, pressione, altitudine) VALUE (idxrow, temperatura, umidita, pressione, altitudine);
73
74
75
76
77END//
78DELIMITER ;
79
80-- Dump della struttura di procedura sensorhub.sp_fill_tbl_ccs811
81DELIMITER //
82CREATE PROCEDURE `sp_fill_tbl_ccs811`(
83 IN `idxrow` INT,
84 IN `co2` DECIMAL(10,2),
85 IN `tvoc` DECIMAL(10,2)
86)
87BEGIN
88
89INSERT INTO tbl_ccs811 (idxrow, co2, tvoc) VALUES (idxrow, co2, tvoc);
90
91END//
92DELIMITER ;
93
94-- Dump della struttura di procedura sensorhub.sp_fill_tbl_ky038
95DELIMITER //
96CREATE PROCEDURE `sp_fill_tbl_ky038`(
97 IN `idxrow` INT,
98 IN `noise` DECIMAL(10,2)
99)
100BEGIN
101 INSERT INTO tbl_ky038 (idxrow, noise) VALUE (idxrow, noise);
102END//
103DELIMITER ;
104
105-- Dump della struttura di procedura sensorhub.sp_fill_tbl_neo6m
106DELIMITER //
107CREATE PROCEDURE `sp_fill_tbl_neo6m`(
108 IN `idxrow` INT,
109 IN `lng` DECIMAL(10,5),
110 IN `lat` DECIMAL(10,5)
111)
112BEGIN
113 INSERT INTO tbl_neo6m (idxrow, lng, lat) value(idxrow, lng, lat);
114END//
115DELIMITER ;
116
117-- Dump della struttura di procedura sensorhub.sp_fill_tbl_rilevamento
118DELIMITER //
119CREATE PROCEDURE `sp_fill_tbl_rilevamento`(
120 IN `idx` INT,
121 IN `mdata` DATETIME,
122 IN `mora` TIME
123)
124BEGIN
125
126
127 INSERT INTO tbl_rilevamento
128 (
129 idx,
130 datarilevazione,
131 orarilevazione,
132 giorno,
133 mese,
134 anno,
135 settimana,
136 nomegiorno,
137 nomemese
138 )
139 SELECT
140 idx,
141 DATE_FORMAT(mdata, '%Y-%m-%d'),
142 mora,
143 DAYOFMONTH(mdata),
144 MONTH(mdata),
145 YEAR(mdata),
146 WEEK(mdata),
147 DAYNAME(mdata),
148 MONTHNAME(mdata)
149 ;
150
151
152END//
153DELIMITER ;
154
155-- Dump della struttura di procedura sensorhub.sp_fill_tbl_veml6070
156DELIMITER //
157CREATE PROCEDURE `sp_fill_tbl_veml6070`(
158 IN `idxrow` INT,
159 IN `uv` DECIMAL(10,2)
160)
161BEGIN
162 INSERT INTO tbl_veml6070 (idxrow, uv) VALUE (idxrow, uv);
163END//
164DELIMITER ;
165
166-- Dump della struttura di procedura sensorhub.sp_gestioneid
167DELIMITER //
168CREATE PROCEDURE `sp_gestioneid`(
169 INOUT `in_idx` INT,
170 INOUT `in_chiave` VARCHAR(50),
171 OUT `old_chiave` VARCHAR(50)
172)
173BEGIN
174
175 declare midx INT ;
176 declare mchiave CHAR(32) ;
177 declare moldchiave CHAR(32) ;
178 declare cnt INT;
179 DECLARE errocode INT;
180 DECLARE step INT;
181
182
183 # controllo presenza idx
184# if in_idx > 0 and LENGTH(in_chiave) > 0 then
185 if in_idx != 0 then
186 SELECT COUNT(1) INTO cnt FROM tbl_hub WHERE idx = in_idx AND chiave = in_chiave;
187
188 if cnt = 0 then
189 #set mchiave := SUBSTRING(MD5(RAND()) FROM 1 FOR 32);
190 #INSERT INTO tbl_hub (chiave) VALUE (mchiave);
191 #SELECT MAX(idx) INTO midx FROM tbl_hub;
192 set mchiave = 'Dispositivo non corretto';
193 set moldchiave = 'Proprietà violata';
194 set midx = 9999;
195 SET step = 9999;
196 else
197 set mchiave := SUBSTRING(MD5(RAND()) FROM 1 FOR 32);
198 SELECT chiave INTO moldchiave FROM tbl_hub WHERE idx = in_idx AND chiave = in_chiave;
199 UPDATE tbl_hub set chiave = mchiave WHERE idx = in_idx ;
200 SET midx = in_idx;
201 set step = 8888;
202 END if;
203 ELSE
204 set mchiave := SUBSTRING(MD5(RAND()) FROM 1 FOR 32);
205 INSERT INTO tbl_hub (chiave) VALUE (mchiave);
206 SELECT MAX(idx) into midx FROM tbl_hub;
207 set step = 7777;
208 END if;
209
210 set in_idx = midx;
211 set in_chiave = mchiave;
212 SET old_chiave = moldchiave;
213
214
215END//
216DELIMITER ;
217
218-- Dump della struttura di procedura sensorhub.sp_getanno
219DELIMITER //
220CREATE PROCEDURE `sp_getanno`(
221 IN `in_idx` INT,
222 IN `mdata` VARCHAR(50),
223 IN `Tipologia` INT
224)
225BEGIN
226
227
228/*
229 Tipologia:
230 Min = 0
231 Media = 1
232 Max = 2
233
234*/
235
236 if Tipologia = 0 then
237
238 SELECT
239 -- v1.idx,
240 -- v1.idxrow,
241 -- v1.datarilevazione,
242 -- v1.orarilevazione,
243 -- avg(v1.giorno) giorno,
244 avg(v1.mese) mese,
245 avg(v1.anno) anno,
246 v1.nomemese orarilevazione,
247 -- cast(v1.mese AS VARCHAR(10)) + '-' + cast(v1.anno as VARCHAR(2)) orarilevazione,
248 -- CONCAT(concat(v1.Anno, '-'),mese) orarilevazione,
249
250 -- v1.nomegiorno,
251 -- v1.nomemese,
252
253 min(v2.temperatura) temperatura,
254 min(v2.umidita) umidita,
255 min(v2.pressione) pressione,
256 min(v2.altitudine) altitudine,
257
258 min(v3.lng) lng,
259 min(v3.lat) lat,
260
261 min(v4.noise) noise,
262
263 min(v5.co2) co2,
264 min(v5.tvoc) tvoc
265
266 FROM
267 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
268 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
269 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
270 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
271 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
272 WHERE
273 1 = 1
274 and v1.idx = in_idx
275 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
276 GROUP BY
277 v1.mese,
278 v1.anno
279 ORDER BY
280 v1.idxrow ASC;
281 END if;
282
283
284 if Tipologia = 1 then
285
286 SELECT
287 -- v1.idx,
288 -- v1.idxrow,
289 -- v1.datarilevazione,
290 -- v1.orarilevazione,
291 -- avg(v1.giorno) giorno,
292 avg(v1.mese) mese,
293 avg(v1.anno) anno,
294 v1.nomemese orarilevazione,
295 -- v1.nomegiorno,
296 -- v1.nomemese,
297-- CONCAT(concat(v1.Anno, '-'),mese) orarilevazione,
298
299 max(v2.temperatura) temperatura,
300 max(v2.umidita) umidita,
301 max(v2.pressione) pressione,
302 max(v2.altitudine) altitudine,
303
304 max(v3.lng) lng,
305 max(v3.lat) lat,
306
307 max(v4.noise) noise,
308
309 max(v5.co2) co2,
310 max(v5.tvoc) tvoc
311
312 FROM
313 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
314 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
315 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
316 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
317 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
318 WHERE
319 1 = 1
320 and v1.idx = in_idx
321 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
322 GROUP BY
323 v1.mese,
324 v1.anno
325 ORDER BY
326 v1.idxrow ASC;
327 END if;
328
329 if Tipologia = 2 then
330
331 SELECT
332 -- v1.idx,
333 -- v1.idxrow,
334 -- v1.datarilevazione,
335 -- v1.orarilevazione,
336 -- avg(v1.giorno) giorno,
337 avg(v1.mese) mese,
338 avg(v1.anno) anno,
339 v1.nomemese orarilevazione,
340 -- v1.nomegiorno,
341 -- v1.nomemese,
342 -- CONCAT(concat(v1.Anno, '-'),mese) orarilevazione,
343
344 avg(v2.temperatura) temperatura,
345 avg(v2.umidita) umidita,
346 avg(v2.pressione) pressione,
347 avg(v2.altitudine) altitudine,
348
349 avg(v3.lng) lng,
350 avg(v3.lat) lat,
351
352 avg(v4.noise) noise,
353
354 avg(v5.co2) co2,
355 avg(v5.tvoc) tvoc
356
357 FROM
358 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
359 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
360 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
361 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
362 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
363 WHERE
364 1 = 1
365 and v1.idx = in_idx
366 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
367 GROUP BY
368 v1.mese,
369 v1.anno
370 ORDER BY
371 v1.idxrow ASC;
372 END if;
373
374
375
376END//
377DELIMITER ;
378
379-- Dump della struttura di procedura sensorhub.sp_getgiorno
380DELIMITER //
381CREATE PROCEDURE `sp_getgiorno`(
382 IN `in_idx` INT,
383 IN `mdata` VARCHAR(50)
384)
385BEGIN
386
387 SELECT
388 v1.idx,
389 v1.idxrow,
390 v1.datarilevazione,
391 v1.orarilevazione,
392 v1.giorno,
393 v1.mese,
394 v1.anno,
395 v1.nomegiorno,
396 v1.nomemese,
397
398 v2.temperatura,
399 v2.umidita,
400 v2.pressione,
401 v2.altitudine,
402
403 v3.lng,
404 v3.lat,
405
406 v4.noise,
407
408 v5.co2,
409 v5.tvoc
410
411 FROM
412 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
413 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
414 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
415 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
416 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
417 WHERE
418 1 = 1
419 and v1.idx = in_idx
420 AND v1.datarilevazione = mdata
421 ORDER BY
422 v1.idxrow asc;
423
424END//
425DELIMITER ;
426
427-- Dump della struttura di procedura sensorhub.sp_getmese
428DELIMITER //
429CREATE PROCEDURE `sp_getmese`(
430 IN `in_idx` INT,
431 IN `mdata` VARCHAR(50),
432 IN `Tipologia` INT
433)
434BEGIN
435
436/*
437 Tipologia:
438 Min = 0
439 Media = 1
440 Max = 2
441
442*/
443
444 if Tipologia = 0 then
445
446
447 SELECT
448
449 avg(v1 .giorno) giorno,
450 avg(v1.mese) mese,
451 avg(v1.anno) anno,
452 v1.giorno orarilevazione,
453
454
455 min(v2.temperatura) temperatura,
456 min(v2.umidita) umidita,
457 min(v2.pressione) pressione,
458 min(v2.altitudine) altitudine,
459
460 min(v3.lng) lng,
461 min(v3.lat) lat,
462
463 min(v4.noise) noise,
464
465 min(v5.co2) co2,
466 min(v5.tvoc) tvoc
467
468 FROM
469 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
470 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
471 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
472 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
473 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
474 WHERE
475 1 = 1
476 and v1.idx = in_idx
477 AND v1.mese = (SELECT mese from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
478 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
479 GROUP BY
480 v1.giorno
481 ORDER BY
482 v1.idxrow asc;
483
484 END if;
485
486
487 if Tipologia = 1 then
488
489
490 SELECT
491
492 avg(v1 .giorno) giorno,
493 avg(v1.mese) mese,
494 avg(v1.anno) anno,
495 v1.giorno orarilevazione,
496
497
498 avg(v2.temperatura) temperatura,
499 avg(v2.umidita) umidita,
500 avg(v2.pressione) pressione,
501 avg(v2.altitudine) altitudine,
502
503 avg(v3.lng) lng,
504 avg(v3.lat) lat,
505
506 avg(v4.noise) noise,
507
508 avg(v5.co2) co2,
509 avg(v5.tvoc) tvoc
510
511 FROM
512 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
513 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
514 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
515 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
516 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
517 WHERE
518 1 = 1
519 and v1.idx = in_idx
520 AND v1.mese = (SELECT mese from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
521 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
522 GROUP BY
523 v1.giorno
524 ORDER BY
525 v1.idxrow asc;
526
527 END if;
528
529 if Tipologia = 2 then
530
531
532 SELECT
533
534 avg(v1 .giorno) giorno,
535 avg(v1.mese) mese,
536 avg(v1.anno) anno,
537 v1.giorno orarilevazione,
538
539
540 max(v2.temperatura) temperatura,
541 max(v2.umidita) umidita,
542 max(v2.pressione) pressione,
543 max(v2.altitudine) altitudine,
544
545 max(v3.lng) lng,
546 max(v3.lat) lat,
547
548 max(v4.noise) noise,
549
550 max(v5.co2) co2,
551 max(v5.tvoc) tvoc
552
553 FROM
554 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
555 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
556 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
557 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
558 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
559 WHERE
560 1 = 1
561 and v1.idx = in_idx
562 AND v1.mese = (SELECT mese from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
563 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = mdata LIMIT 1)
564 GROUP BY
565 v1.giorno
566 ORDER BY
567 v1.idxrow asc;
568
569 END if;
570
571END//
572DELIMITER ;
573
574-- Dump della struttura di procedura sensorhub.sp_getsettimana
575DELIMITER //
576CREATE PROCEDURE `sp_getsettimana`(
577 IN `in_idx` INT,
578 IN `mdata` VARCHAR(50),
579 IN `Tipologia` INT
580)
581BEGIN
582/*
583 Tipologia:
584 Min = 0
585 Media = 1
586 Max = 2
587
588*/
589
590 if Tipologia = 0 then
591
592 SELECT
593 min(v1.datarilevazione) Dal,
594 max(v1.datarilevazione) Al,
595 max(v1.nomegiorno) orarilevazione,
596
597 avg(v1.settimana) + 1 settimana,
598
599 min(v2.temperatura) temperatura,
600 min(v2.umidita) umidita,
601 min(v2.pressione) pressione,
602 min(v2.altitudine) altitudine,
603
604 min(v3.lng) lng,
605 min(v3.lat) lat,
606
607 min(v4.noise) noise,
608
609 min(v5.co2) co2,
610 min(v5.tvoc) tvoc
611
612 FROM
613 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
614 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
615 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
616 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
617 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
618 WHERE
619 1 = 1
620 and v1.idx = 1
621 AND v1.settimana = (SELECT settimana from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
622 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
623 GROUP BY
624 v1.giorno
625 ORDER BY
626 v1.idxrow asc;
627
628 END if;
629
630 if Tipologia = 1 then
631
632 SELECT
633 min(v1.datarilevazione) Dal,
634 max(v1.datarilevazione) Al,
635 avg(v1.settimana) + 1 settimana,
636 max(v1.nomegiorno) orarilevazione,
637
638 avg(v2.temperatura) temperatura,
639 avg(v2.umidita) umidita,
640 avg(v2.pressione) pressione,
641 avg(v2.altitudine) altitudine,
642
643 avg(v3.lng) lng,
644 avg(v3.lat) lat,
645
646 avg(v4.noise) noise,
647
648 avg(v5.co2) co2,
649 avg(v5.tvoc) tvoc
650
651 FROM
652 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
653 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
654 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
655 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
656 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
657 WHERE
658 1 = 1
659 and v1.idx = 1
660 AND v1.settimana = (SELECT settimana from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
661 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
662 GROUP BY
663 v1.giorno
664 ORDER BY
665 v1.idxrow asc;
666
667 END if;
668
669 if Tipologia = 2 then
670
671 SELECT
672 min(v1.datarilevazione) Dal,
673 max(v1.datarilevazione) Al,
674 avg(v1.settimana) + 1 settimana,
675 max(v1.nomegiorno) orarilevazione,
676
677 max(v2.temperatura) temperatura,
678 max(v2.umidita) umidita,
679 max(v2.pressione) pressione,
680 max(v2.altitudine) altitudine,
681
682 max(v3.lng) lng,
683 max(v3.lat) lat,
684
685 max(v4.noise) noise,
686
687 max(v5.co2) co2,
688 max(v5.tvoc) tvoc
689
690 FROM
691 tbl_rilevamento v1 inner JOIN tbl_bme280 v2 ON v1.idxrow = v2.idxrow
692 inner JOIN tbl_neo6m v3 ON v1.idxrow = v3.idxrow
693 inner JOIN tbl_ky038 v4 ON v1.idxrow = v4.idxrow
694 inner JOIN tbl_ccs811 v5 ON v1.idxrow = v5.idxrow
695 inner JOIN tbl_veml6070 v7 ON v1.idxrow = v7.idxrow
696 WHERE
697 1 = 1
698 and v1.idx = 1
699 AND v1.settimana = (SELECT settimana from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
700 AND v1.anno = (SELECT anno from tbl_rilevamento WHERE datarilevazione = '2019-05-14' LIMIT 1)
701 GROUP BY
702 v1.giorno
703 ORDER BY
704 v1.idxrow asc;
705
706 END if;
707
708END//
709DELIMITER ;
710
711-- Dump della struttura di procedura sensorhub.sp_InserimentoDati
712DELIMITER //
713CREATE PROCEDURE `sp_InserimentoDati`(
714 IN `in_mac` VARCHAR(50),
715 IN `temperatura` DOUBLE(10,2),
716 IN `umidita` DOUBLE(10,2),
717 IN `pressione` DOUBLE(10,2),
718 IN `altitudine` DOUBLE(10,2),
719 IN `uv` DOUBLE(10,2),
720 IN `co2` DOUBLE(10,2),
721 IN `tvoc` DOUBLE(10,2),
722 IN `noise` DOUBLE(10,2),
723 IN `lng` DOUBLE(10,5),
724 IN `lat` DOUBLE(10,5),
725 IN `mdata` VARCHAR(50),
726 IN `mora` VARCHAR(50)
727)
728BEGIN
729
730
731 DECLARE midxrow INT ;
732 DECLARE in_idx INT;
733 DECLARE mStazione INT;
734
735
736
737 -- Controllo esistenza stazione
738 -- Tipo opezione 0 = inseriento e 1 = lettura
739 set in_idx = (SELECT `get_stazione`(in_mac, 0));
740
741set in_idx = 1;
742
743 if in_idx = -1 then
744
745 -- Stazione inesistente
746 SELECT 'Il codice inserito è errato';
747
748 else
749
750 CALL `sp_fill_tbl_rilevamento`(in_idx, mdata, mora);
751 SELECT max(idxrow) INTO midxrow from tbl_rilevamento WHERE idx = in_idx;
752 CALL `sp_fill_tbl_bme280`(midxrow, temperatura, umidita, pressione, altitudine);
753 CALL `sp_fill_tbl_neo6m`(midxrow, lng, lat);
754 CALL `sp_fill_tbl_ky038`(midxrow, noise);
755 CALL `sp_fill_tbl_ccs811` (midxrow, co2, tvoc);
756 CALL `sp_fill_tbl_veml6070` (midxrow, uv );
757
758 SELECT in_idx;
759
760 END if;
761
762
763
764
765END//
766DELIMITER ;
767
768-- Dump della struttura di procedura sensorhub.sp_leggiRilevamentoMaster
769DELIMITER //
770CREATE PROCEDURE `sp_leggiRilevamentoMaster`(
771 IN `indirizzoMac` VARCHAR(50),
772 IN `tipoQuery` INT,
773 IN `mdata` VARCHAR(50)
774)
775BEGIN
776
777/*
778tipoQuery:
779
780 1 Query giornaliera
781 2 Query Settimanale MAX
782 3 Query Settimanale MIN
783 4 Query Settimanale AVG
784 5 Query Mensile MAX
785 6 Query Mensile MIN
786 7 Query Mensile AVG
787 8 Query Annuale MAX
788 9 Query Annuale MIN
789 10 Query Annulae AVG
790
791 Tipologia:
792 Min = 0
793 Media = 1
794 Max = 2
795
796*/
797
798
799
800 DECLARE mStazione INT;
801 DECLARE midxrow INT ;
802
803 -- Controllo esistenza stazione
804 set mStazione = (SELECT `get_stazione`(indirizzoMac, 1));
805
806 if mStazione = -1 then
807
808 -- Stazione inesistente
809 SELECT 'Il codice inserito è errato';
810
811 else
812
813 -- Check
814 -- SELECT mStazione, indirizzoMac, mdata, '1' TipoOperazione;
815
816
817 if tipoQuery = 1 then
818 CALL `sp_getgiorno`(mStazione, mdata);
819 END if;
820
821
822 -- SETTIMANALE
823 -- SETTIMANALE
824 -- SETTIMANALE
825
826
827 -- Sdettimanale Max
828 if tipoQuery = 2 then
829 CALL `sp_getsettimana`(mStazione, mdata, '0');
830 END if;
831
832 -- Sdettimanale Min
833 if tipoQuery = 3 then
834 CALL `sp_getsettimana`(mStazione, mdata, '1');
835 END if;
836
837 -- Sdettimanale AVG
838 if tipoQuery = 4 then
839 CALL `sp_getsettimana`(mStazione, mdata, '2');
840 END if;
841
842
843 -- MENSILE
844 -- MENSILE
845 -- MENSILE
846
847 -- Mensile max
848 if tipoQuery = 5 then
849 CALL `sp_getmese`(mStazione, mdata, '0');
850 END if;
851
852 -- Mensile min
853 if tipoQuery = 6 then
854 CALL `sp_getmese`(mStazione, mdata, '1');
855 END if;
856
857 -- Mensile avg
858 if tipoQuery = 7 then
859 CALL `sp_getmese`(mStazione, mdata, '2');
860 END if;
861
862
863
864 -- ANNO
865 -- ANNO
866 -- ANNO
867
868 -- Anno max
869 if tipoQuery = 8 then
870 CALL `sp_getanno`(mStazione, mdata, '0');
871 END if;
872
873 -- Anno min
874 if tipoQuery = 9 then
875 CALL `sp_getanno`(mStazione, mdata, '2');
876 END if;
877
878 -- Anno avg
879 if tipoQuery = 10 then
880 CALL `sp_getanno`(mStazione, mdata, '1');
881 END if;
882
883
884
885
886 END if;
887
888
889
890
891
892END//
893DELIMITER ;
894
895-- Dump della struttura di procedura sensorhub.sp_resetall
896DELIMITER //
897CREATE PROCEDURE `sp_resetall`()
898BEGIN
899
900
901 TRUNCATE TABLE tbl_bme280;
902-- TRUNCATE TABLE tbl_bn220;
903 TRUNCATE TABLE tbl_ky038;
904-- TRUNCATE TABLE tbl_mq135;
905 TRUNCATE TABLE tbl_veml6070;
906
907 DELETE FROM tbl_rilevamento;
908 ALTER TABLE tbl_rilevamento AUTO_INCREMENT = 1;
909
910END//
911DELIMITER ;
912
913-- Dump della struttura di tabella sensorhub.tbl_bme280
914CREATE TABLE IF NOT EXISTS `tbl_bme280` (
915 `idxrow` int(11) NOT NULL,
916 `temperatura` double(10,2) DEFAULT NULL,
917 `umidita` double(10,2) DEFAULT NULL,
918 `pressione` double(10,2) DEFAULT NULL,
919 `altitudine` double(10,2) DEFAULT NULL,
920 KEY `idxrow` (`idxrow`),
921 CONSTRAINT `FK_tbl_bme280_tbl_rilevamento` FOREIGN KEY (`idxrow`) REFERENCES `tbl_rilevamento` (`idxrow`)
922) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
923
924-- L’esportazione dei dati non era selezionata.
925
926-- Dump della struttura di tabella sensorhub.tbl_ccs811
927CREATE TABLE IF NOT EXISTS `tbl_ccs811` (
928 `idxrow` int(11) NOT NULL,
929 `co2` double(10,2) DEFAULT NULL,
930 `tvoc` double(10,2) DEFAULT NULL,
931 KEY `idxrow` (`idxrow`),
932 CONSTRAINT `FK_tbl_mq135_tbl_rilevamento` FOREIGN KEY (`idxrow`) REFERENCES `tbl_rilevamento` (`idxrow`)
933) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
934
935-- L’esportazione dei dati non era selezionata.
936
937-- Dump della struttura di tabella sensorhub.tbl_hub
938CREATE TABLE IF NOT EXISTS `tbl_hub` (
939 `idx` int(11) NOT NULL AUTO_INCREMENT,
940 `chiave` char(32) NOT NULL DEFAULT '',
941 PRIMARY KEY (`idx`)
942) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4;
943
944-- L’esportazione dei dati non era selezionata.
945
946-- Dump della struttura di tabella sensorhub.tbl_ky038
947CREATE TABLE IF NOT EXISTS `tbl_ky038` (
948 `idxrow` int(11) NOT NULL,
949 `noise` double(10,2) DEFAULT NULL,
950 KEY `idxrow` (`idxrow`),
951 CONSTRAINT `FK_tbl_ky037_tbl_rilevamento` FOREIGN KEY (`idxrow`) REFERENCES `tbl_rilevamento` (`idxrow`)
952) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
953
954-- L’esportazione dei dati non era selezionata.
955
956-- Dump della struttura di tabella sensorhub.tbl_neo6m
957CREATE TABLE IF NOT EXISTS `tbl_neo6m` (
958 `idxrow` int(11) NOT NULL,
959 `lng` double(10,5) DEFAULT NULL,
960 `lat` double(10,5) DEFAULT NULL,
961 KEY `idxrow` (`idxrow`),
962 CONSTRAINT `FK_tbl_bn220_tbl_rilevamento` FOREIGN KEY (`idxrow`) REFERENCES `tbl_rilevamento` (`idxrow`)
963) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
964
965-- L’esportazione dei dati non era selezionata.
966
967-- Dump della struttura di tabella sensorhub.tbl_rilevamento
968CREATE TABLE IF NOT EXISTS `tbl_rilevamento` (
969 `idx` int(11) NOT NULL,
970 `idxrow` int(11) NOT NULL AUTO_INCREMENT,
971 `datarilevazione` char(10) NOT NULL,
972 `orarilevazione` char(8) NOT NULL,
973 `giorno` tinyint(4) NOT NULL,
974 `mese` tinyint(4) NOT NULL,
975 `anno` int(11) NOT NULL DEFAULT 0,
976 `settimana` tinyint(4) DEFAULT NULL,
977 `nomegiorno` varchar(20) NOT NULL,
978 `nomemese` varchar(20) NOT NULL,
979 PRIMARY KEY (`idxrow`),
980 KEY `giorno` (`giorno`),
981 KEY `mese` (`mese`),
982 KEY `anno` (`anno`),
983 KEY `idx` (`idx`) USING BTREE,
984 KEY `settimana` (`settimana`),
985 KEY `datarilevazione` (`datarilevazione`) USING BTREE,
986 CONSTRAINT `FK_tbl_rilevamento_tbl_hub` FOREIGN KEY (`idx`) REFERENCES `tbl_hub` (`idx`)
987) ENGINE=InnoDB AUTO_INCREMENT=53655 DEFAULT CHARSET=utf8mb4 COMMENT='p';
988
989-- L’esportazione dei dati non era selezionata.
990
991-- Dump della struttura di tabella sensorhub.tbl_veml6070
992CREATE TABLE IF NOT EXISTS `tbl_veml6070` (
993 `idxrow` int(11) NOT NULL,
994 `uv` double(10,2) DEFAULT NULL,
995 KEY `idxrow` (`idxrow`),
996 CONSTRAINT `FK_tbl_veml6070_tbl_rilevamento` FOREIGN KEY (`idxrow`) REFERENCES `tbl_rilevamento` (`idxrow`)
997) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
998
999-- L’esportazione dei dati non era selezionata.
1000
1001-- Dump della struttura di procedura sensorhub.valorizza
1002DELIMITER //
1003CREATE PROCEDURE `valorizza`(
1004 IN `in_idx1` INT
1005)
1006BEGIN
1007
1008
1009 DECLARE counter INT DEFAULT 1;
1010 DECLARE maxcounter INT DEFAULT 1;
1011
1012 declare in_idx INT;
1013 declare temperatura DOUBLE(10,2);
1014 declare umidita DOUBLE(10,2);
1015 declare pressione DOUBLE(10,2);
1016 declare altitudine DOUBLE(10,2);
1017 declare uv DOUBLE(10,2);
1018 declare co2 DOUBLE(10,2);
1019 declare TVOC DOUBLE(10,2);
1020 declare noise DOUBLE(10,2);
1021 declare lng DOUBLE(10,5);
1022 declare lat DOUBLE(10,5);
1023
1024 DECLARE mdata1 VARCHAR(50);
1025 DECLARE mora1 VARCHAR(50);
1026
1027
1028 TRUNCATE TABLE finta;
1029
1030 SET @row_number = 0;
1031 insert into finta (riga, mdata, mora)
1032 SELECT (@row_number:=@row_number + 1) AS row_num, '2019-01-01 00:00:00' + INTERVAL seq HOUR AS mdata, TIME('2019-01-01 00:00:00' + INTERVAL seq HOUR) AS mdata1 FROM seq_0_to_26303;
1033 #SELECT (@row_number:=@row_number + 1) AS row_num, '2019-01-01 00:00:00' + INTERVAL seq HOUR AS mdata, TIME('2019-01-01 00:00:00' + INTERVAL seq HOUR) AS mdata1 FROM seq_0_to_1000;
1034
1035
1036 SELECT MAX(riga) into maxcounter FROM finta;
1037
1038
1039
1040 WHILE counter <= maxcounter DO
1041
1042 SELECT mdata , mora INTO mdata1, mora1 FROM finta WHERE riga = counter;
1043
1044 set in_idx = in_idx1;
1045 set temperatura = format(RAND()*100,2);
1046 set umidita = format(RAND()*100,2);
1047 set pressione = format(RAND()*100,2);
1048 set altitudine = format(RAND()*100,2);
1049 set uv = format(RAND()*100,2);
1050 set co2 = format(RAND()*100,2);
1051 set TVOC = format(RAND()*100,2);
1052 set noise = format(RAND()*100,2);
1053 set lng = format(RAND()*100,5);
1054 set lat = format(RAND()*100,5);
1055
1056 #CALL InsertCalendar(dt);
1057
1058 CALL `sp_fintorilevamento`(in_idx, temperatura, umidita, pressione, altitudine, uv, co2, TVOC, noise, lng, lat, mdata1, mora1);
1059
1060 SET counter = counter + 1;
1061 END WHILE;
1062
1063
1064 SELECT 'Carico terminato';
1065
1066END//
1067DELIMITER ;
1068
1069/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
1070/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
1071/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
1072/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;
1073