Compare commits
8
Commits
639b7669db
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6be25b340 | ||
|
|
472a6d9654 | ||
|
|
48a470ce34 | ||
|
|
23c61b7ef8 | ||
|
|
50fe3c0085 | ||
|
|
4f690b9b71 | ||
|
|
c0994119eb | ||
|
|
e412111edb |
No files matched your search
@@ -4,3 +4,6 @@ gtVi.py
|
|||||||
__pycache__/
|
__pycache__/
|
||||||
energiemon_*.csv
|
energiemon_*.csv
|
||||||
energiemon_*.csv.utf
|
energiemon_*.csv.utf
|
||||||
|
csv/*
|
||||||
|
energiemon.db--
|
||||||
|
energiemon.BAK.db
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*.open energiemon.db*/
|
||||||
|
.mode csv
|
||||||
|
.separator ';'
|
||||||
|
.header on
|
||||||
|
|
||||||
|
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,gaszaehler,wetterinfo
|
||||||
|
, replace (gasval,'.',',') as gasval
|
||||||
|
, replace (vorgasval,'.',',') as vorgasval
|
||||||
|
, replace (gasvolumen,'.',',') as gasvolumen
|
||||||
|
, replace (zeitspannestd,'.',',') as zeitspannestd
|
||||||
|
, replace (gasvolumen24,'.',',') as gasvolumen24
|
||||||
|
, replace (gasfaktor,'.',',') as gasfaktor
|
||||||
|
, replace (gasverbrauchKWhauf24,'.',',') as gasverbrauchKWhauf24
|
||||||
|
, replace (GradCelsiusAussen,'.',',') as GradCelsiusAussen
|
||||||
|
|
||||||
|
from vgasroh ;
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
/*.open energiemon.db*/
|
||||||
|
.mode csv
|
||||||
|
.separator ';'
|
||||||
|
.header on
|
||||||
|
|
||||||
|
select mon
|
||||||
|
, replace (gasKWhSum,'.',',') as gasKWhSum
|
||||||
|
, replace (stromKWhSum,'.',',') as stromKWhSum
|
||||||
|
, replace (wasserQmSum,'.',',') as wasserQmSum
|
||||||
|
from vmonatssummen ;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/*.open registrierung.db*/
|
/*.open energiemon.db*/
|
||||||
.mode csv
|
.mode csv
|
||||||
.separator ';'
|
.separator ';'
|
||||||
.header on
|
.header on
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
/*.open energiemon.db*/
|
||||||
|
.mode csv
|
||||||
|
.separator ';'
|
||||||
|
.header on
|
||||||
|
|
||||||
|
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,stromzaehler,wetterinfo
|
||||||
|
, replace (stromval,'.',',') as stromval
|
||||||
|
, replace (vorstromval,'.',',') as vorstromval
|
||||||
|
, replace (stromverzehr,'.',',') as stromverzehr
|
||||||
|
, replace (zeitspannestd,'.',',') as zeitspannestd
|
||||||
|
, replace (stromverzehr24,'.',',') as stromverzehr24
|
||||||
|
from vstromroh ;
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
/*.open energiemon.db*/
|
||||||
|
.mode csv
|
||||||
|
.separator ';'
|
||||||
|
.header on
|
||||||
|
|
||||||
|
select id,datetime(zeitpunkt,"localtime")as zeitpunkt,wasserzaehler,wetterinfo
|
||||||
|
, replace (wasserval,'.',',') as wasserval
|
||||||
|
, replace (vorwasserval,'.',',') as vorwasserval
|
||||||
|
, replace (wasserverbrauch,'.',',') as wasserverbrauch
|
||||||
|
, replace (zeitspannestd,'.',',') as zeitspannestd
|
||||||
|
, replace (wasserverbrauch24,'.',',') as wasserverbrauch24
|
||||||
|
from vwasserroh ;
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/*.open energiemon.db*/
|
||||||
|
.mode csv
|
||||||
|
.separator ';'
|
||||||
|
.header on
|
||||||
|
|
||||||
|
select KW
|
||||||
|
, replace (gasKWhSum,'.',',') as gasKWhSum
|
||||||
|
, replace (stromKWhSum,'.',',') as stromKWhSum
|
||||||
|
, replace (wasserQmSum,'.',',') as wasserQmSum
|
||||||
|
, replace (gasfaktor,'.',',') as gasfaktor
|
||||||
|
from vwochensummen ;
|
||||||
|
|
||||||
+53
-9
@@ -3,24 +3,68 @@
|
|||||||
# Mailt den CSV Dump der Datenbank an Mailziel
|
# Mailt den CSV Dump der Datenbank an Mailziel
|
||||||
#
|
#
|
||||||
|
|
||||||
MAILZIEL="br@runden.de denise@runden.de"
|
function toWin() {
|
||||||
|
mv $1 $1.utf
|
||||||
|
/usr/bin/iconv -t windows-1252 -f utf-8 $1.utf > $1
|
||||||
|
rm $1.utf
|
||||||
|
}
|
||||||
|
|
||||||
|
MAILZIEL="br@runden.de"
|
||||||
CWD=$(dirname $0)
|
CWD=$(dirname $0)
|
||||||
TODAY=$(date +"%Y-%m-%d")
|
TODAY=$(date +"%Y-%m-%d")
|
||||||
SQLITE3=/usr/bin/sqlite3
|
SQLITE3=/usr/bin/sqlite3
|
||||||
DATABQL=$CWD/energiemon.db
|
DATABQL=$CWD/energiemon.db
|
||||||
SQLTXTFILE=$CWD/exportCSV.sql
|
|
||||||
CSVDUMP=$CWD/energiemon_$TODAY.csv
|
|
||||||
# DEBUG echo $SQLITE3 $DATABQL LT $SQLTXTFILE GT $CSVDUMP
|
|
||||||
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
|
||||||
|
|
||||||
mv $CSVDUMP $CSVDUMP.utf
|
CSVSUBDIR=$CWD/csv
|
||||||
/usr/bin/iconv -t windows-1252 -f utf-8 $CSVDUMP.utf > $CSVDUMP
|
mkdir -p $CSVSUBDIR
|
||||||
|
|
||||||
|
#rohdaten
|
||||||
|
DATEN=rohdaten
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
|
#gasdaten
|
||||||
|
DATEN=gasdaten
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
|
#stromdaten
|
||||||
|
DATEN=stromdaten
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
|
#wasserdaten
|
||||||
|
DATEN=wasserdaten
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
|
#monatssummen
|
||||||
|
DATEN=monatssummen
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
|
#wochensummen
|
||||||
|
DATEN=wochensummen
|
||||||
|
SQLTXTFILE=$CWD/export${DATEN}.sql
|
||||||
|
CSVDUMP=$CSVSUBDIR/${DATEN}_${TODAY}.csv
|
||||||
|
$SQLITE3 $DATABQL < $SQLTXTFILE > $CSVDUMP
|
||||||
|
toWin $CSVDUMP
|
||||||
|
|
||||||
echo -en "Hallo zusammen, \nAnbei die Zählerdaten \n" \
|
echo -en "Hallo zusammen, \nAnbei die Zählerdaten \n" \
|
||||||
"von https://enermon.chmln.de \n\n"\
|
"von https://enermon.chmln.de \n\n"\
|
||||||
"Viele Grüße von der ChamäleonCloud \n\n" | \
|
"Viele Grüße von der ChamäleonCloud \n\n" | \
|
||||||
/usr/bin/mutt -a $CSVDUMP -s "Energiemon Zählerstände vom $TODAY" -- $MAILZIEL
|
/usr/bin/mutt -a $CSVSUBDIR/*$TODAY.csv -s "Energiemon Zählerstände vom $TODAY" -- $MAILZIEL
|
||||||
|
|
||||||
# Aufräumen
|
# Aufräumen
|
||||||
/usr/bin/find $CWD \( -iname "*.csv" -o -iname "*csv.utf" \) -mtime +29 -delete
|
/usr/bin/find $CSVSUBDIR \( -iname "*.csv" -o -iname "*csv.utf" \) -mtime +29 -delete
|
||||||
|
|
||||||
Whitespace-only changes.
+269
@@ -0,0 +1,269 @@
|
|||||||
|
drop view if exists gasroh;
|
||||||
|
drop view if exists vgasroh;
|
||||||
|
create view vgasroh as
|
||||||
|
|
||||||
|
SELECT id,zeitpunkt,gaszaehler,wetterinfo
|
||||||
|
, CAST(replace(gaszaehler ,',','.') as float) as gasval,
|
||||||
|
|
||||||
|
lag ( CAST(replace(gaszaehler ,',','.') as float) ,1 ) over (order by id)
|
||||||
|
as vorgasval
|
||||||
|
|
||||||
|
,
|
||||||
|
case when
|
||||||
|
round(
|
||||||
|
( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
is null then 0.0
|
||||||
|
else
|
||||||
|
round(
|
||||||
|
( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
end
|
||||||
|
as gasvolumen
|
||||||
|
|
||||||
|
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
|
||||||
|
as zeitspannestd
|
||||||
|
|
||||||
|
,
|
||||||
|
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
|
||||||
|
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
|
||||||
|
* 24.0 as gasvolumen24
|
||||||
|
|
||||||
|
, 10.0 as gasfaktor
|
||||||
|
|
||||||
|
, case when
|
||||||
|
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
|
||||||
|
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
|
||||||
|
is null then 0.0
|
||||||
|
else
|
||||||
|
10.0 * (
|
||||||
|
( ( CAST(replace(gaszaehler ,',','.') as float)) - (lag ( CAST(replace(gaszaehler ,',','.') as float),1 ) over (order by id)) )
|
||||||
|
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
|
||||||
|
* 24.0
|
||||||
|
)
|
||||||
|
|
||||||
|
end
|
||||||
|
as gasverbrauchKWhauf24
|
||||||
|
|
||||||
|
, cast ( substr(wetterinfo, 0,instr(wetterinfo,'°C|')) as float)
|
||||||
|
as GradCelsiusAussen
|
||||||
|
|
||||||
|
from eintraege where gaszaehler>0 ;
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
drop view if exists gassum;
|
||||||
|
drop view if exists vgassum;
|
||||||
|
create view vgassum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
|
||||||
|
,round ( sum(gasvolumen ),3) * max(gasfaktor) as gasKWhSum
|
||||||
|
,max(gasfaktor) as gasfaktor
|
||||||
|
from vgasroh
|
||||||
|
group by mon
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
drop view if exists vstromroh;
|
||||||
|
create view vstromroh as
|
||||||
|
|
||||||
|
SELECT id,zeitpunkt,stromzaehler,wetterinfo
|
||||||
|
, CAST(replace(stromzaehler ,',','.') as float) as stromval,
|
||||||
|
|
||||||
|
lag ( CAST(replace(stromzaehler ,',','.') as float) ,1 ) over (order by id)
|
||||||
|
as vorstromval
|
||||||
|
|
||||||
|
,
|
||||||
|
case when
|
||||||
|
round(
|
||||||
|
( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
is null then 0.0
|
||||||
|
else
|
||||||
|
round(
|
||||||
|
( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
end
|
||||||
|
as stromverzehr
|
||||||
|
|
||||||
|
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
|
||||||
|
as zeitspannestd
|
||||||
|
|
||||||
|
,
|
||||||
|
( ( CAST(replace(stromzaehler ,',','.') as float)) - (lag ( CAST(replace(stromzaehler ,',','.') as float),1 ) over (order by id)) )
|
||||||
|
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
|
||||||
|
* 24.0 as stromverzehr24
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
from eintraege where stromzaehler>0 ;
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
drop view if exists vstromsum;
|
||||||
|
create view vstromsum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
|
||||||
|
|
||||||
|
,round ( sum(stromverzehr ),3) as stromKWhSum
|
||||||
|
|
||||||
|
from vstromroh
|
||||||
|
group by mon
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
drop view if exists vwasserroh;
|
||||||
|
create view vwasserroh as
|
||||||
|
|
||||||
|
SELECT id,zeitpunkt,wasserzaehler,wetterinfo
|
||||||
|
, CAST(replace(wasserzaehler ,',','.') as float) as wasserval,
|
||||||
|
|
||||||
|
lag ( CAST(replace(wasserzaehler ,',','.') as float) ,1 ) over (order by id)
|
||||||
|
as vorwasserval
|
||||||
|
|
||||||
|
,
|
||||||
|
case when
|
||||||
|
round(
|
||||||
|
( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
is null then 0.0
|
||||||
|
else
|
||||||
|
round(
|
||||||
|
( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id))
|
||||||
|
,3)
|
||||||
|
end
|
||||||
|
as wasserverbrauch
|
||||||
|
|
||||||
|
, ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0
|
||||||
|
as zeitspannestd
|
||||||
|
|
||||||
|
,
|
||||||
|
( ( CAST(replace(wasserzaehler ,',','.') as float)) - (lag ( CAST(replace(wasserzaehler ,',','.') as float),1 ) over (order by id)) )
|
||||||
|
/( ( julianday(zeitpunkt) - julianday ( ( lag(zeitpunkt,1) over (order by id) ) ) ) * 24.0 )
|
||||||
|
* 24.0 as wasserverbrauch24
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
from eintraege where wasserzaehler>0 ;
|
||||||
|
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
drop view if exists vwassersum;
|
||||||
|
create view vwassersum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%m' ,zeitpunkt) as INTEGER ) as mon
|
||||||
|
|
||||||
|
,round ( sum(wasserverbrauch ),3) as wasserQmSum
|
||||||
|
|
||||||
|
from vwasserroh
|
||||||
|
group by mon
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
drop view if EXISTS vmonatssummen;
|
||||||
|
|
||||||
|
create view vmonatssummen as
|
||||||
|
|
||||||
|
SELECT w.mon, w.wasserQmSum, s.stromKWhSum, g.gasKWhSum
|
||||||
|
|
||||||
|
FROM vwassersum as w
|
||||||
|
left join vstromsum as s on w.mon = s.mon
|
||||||
|
left join vgassum as g on w.mon = g.mon
|
||||||
|
;
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
DROP VIEW if EXISTS vgasweeksum ;
|
||||||
|
CREATE VIEW vgasweeksum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
|
||||||
|
,round ( sum(gasvolumen ),3) * max(gasfaktor) as gasKWhSum
|
||||||
|
,max(gasfaktor) as gasfaktor
|
||||||
|
from vgasroh
|
||||||
|
group by KW;
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
DROP VIEW if EXISTS vstromweeksum ;
|
||||||
|
CREATE VIEW vstromweeksum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
|
||||||
|
,round ( sum(stromverzehr ),3) as stromKWhSum
|
||||||
|
|
||||||
|
from vstromroh
|
||||||
|
group by KW;
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DROP VIEW if exists "main"."vwasserweeksum";
|
||||||
|
CREATE VIEW vwasserweeksum as
|
||||||
|
|
||||||
|
select
|
||||||
|
cast ( strftime('%Y%W' ,zeitpunkt) as INTEGER ) as KW
|
||||||
|
|
||||||
|
,round ( sum(wasserverbrauch ),3) as wasserQmSum
|
||||||
|
|
||||||
|
from vwasserroh
|
||||||
|
group by KW
|
||||||
|
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
-- ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
DROP VIEW if EXISTS "main"."vwochensummen";
|
||||||
|
CREATE VIEW vwochensummen as
|
||||||
|
|
||||||
|
SELECT w.KW, w.wasserQmSum, s.stromKWhSum, g.gasKWhSum, g.gasfaktor
|
||||||
|
|
||||||
|
FROM vwasserweeksum as w
|
||||||
|
left join vstromweeksum as s on w.KW = s.KW
|
||||||
|
left join vgasweeksum as g on w.KW = g.KW
|
||||||
Reference in new issue
Block a user