mysql gegevens berekenen (twee rijen van elkaar aftrekken)
ik heb een nieuwe relationele database gemaakt (met hulp van enkelen onder jullie ;-) ). Ik denk dat het goed gelukt is, en heb al heel wat kolommen kunnen "berekenen" met data uit andere kolommen / tabel.
Er ontbreekt me nog één kolom om te berekenen.. maar hier loop ik een beetje vast..
Ik zou de gewichttoename tov van de vorige dag willen berekenen (maw de data van twee rijen van elkaar aftrekken). Op onderstaande foto kun je een screenshot zien van een naar csv geexporteerde tabel. De kolom met waarde "0" moet ik nog kunnen berekenen..
Kan iemand me zeggen of dit uberhaupt mogelijk is.. en als het mogelijk, kunnen jullie me op weg zetten?
Alvasr heel erg bedankt
Gewijzigd op 19/05/2019 20:50:38 door - Ariën -
Dan krijg je de gewichtstoename tov vorige meting door (het commentaar achter de regels weglaten bij uitvoeren):
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
select pg.*,pg.gewicht_ochtend - (
select pg.gewicht_avond
from pup_gewicht
where pup_id = pg.pup_id //zelfde pup
and datum < pg.datum //vooor de huidige datum (dus niet de huidige)
order by pg.datum desc //nieuwste eerst = gisteren bovenaan
limit 1 //alleen de eerste = gisteren
) as gewicht_toename_vorige_dag
from pup_gewicht pg
where pup_id = 5
select pg.gewicht_avond
from pup_gewicht
where pup_id = pg.pup_id //zelfde pup
and datum < pg.datum //vooor de huidige datum (dus niet de huidige)
order by pg.datum desc //nieuwste eerst = gisteren bovenaan
limit 1 //alleen de eerste = gisteren
) as gewicht_toename_vorige_dag
from pup_gewicht pg
where pup_id = 5
Gewijzigd op 19/05/2019 21:18:48 door Rob Doemaarwat
En als het niet lukt in MySQL kun je dit natuurlijk ook on-the-fly berekenen in PHP, ook dat is een prima oplossing.
Dank je wel voor je antwoord...
Als ik het goed begrijp is dit de berekening om de gewichtstoename tussen morgen en avond te berekenen..
Waar ik eigenlijk naar op zoek ben is om de gewichtstoename te berekenen tussen twee opeenvolgende avonden..
Als ik in deze regel " select pg.*,pg.gewicht_ochtend - ( select pg.gewicht_avond "
ochtend vervang door avond dan bekom ik "0" als uitkomst...
@Thomas van den Heuvel .. oohh ik ben nog maar een beginner in mysql dus php is voor mij nog een brug te ver.. haha
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
select pg.*,pg.gewicht_avond - ( //<- hier avond van gemaakt voor avond-avond verschil
select gewicht_avond //<- hier zat foutje, alias prefix weggehaald
from pup_gewicht
where pup_id = pg.pup_id //zelfde pup
and datum < pg.datum //vooor de huidige datum (dus niet de huidige)
order by pg.datum desc //nieuwste eerst = gisteren bovenaan
limit 1 //alleen de eerste = gisteren
) as gewicht_toename_vorige_dag
from pup_gewicht pg
where pup_id = 5
select gewicht_avond //<- hier zat foutje, alias prefix weggehaald
from pup_gewicht
where pup_id = pg.pup_id //zelfde pup
and datum < pg.datum //vooor de huidige datum (dus niet de huidige)
order by pg.datum desc //nieuwste eerst = gisteren bovenaan
limit 1 //alleen de eerste = gisteren
) as gewicht_toename_vorige_dag
from pup_gewicht pg
where pup_id = 5
Is het ook mogelijk om dit om te zetten naar een update statement?
Volgens mij zou dit moeten werken:
#1093 - You can't specify target table 'pg' for update in FROM clause
het spijt me dat ik zo veel vragen stel.. maar heb nog nooit met statements met "pg" erin gewerkt..
"pg" is gewoon een alias. Omdat ik in de sub-select 2x naar pup_gewicht verwijs moet ik er voor zorgen dat ik ze uit elkaar kan houden. Vandaar dat ik een alias toeken ("pg" = pup_gewicht). Als je overal "pg" vervang door "whatever" werkt het ook.
ik heb een mysql database , ik log in via phpmyadmin...
Mocht je een beter alternatief hebben.. dan wil ik graag bijleren ;-)
Anderzijds is het ook ideaal voor lokale ontwikkeling, omdat je niet via de webserver werkt, en geen uploadlimieten hebt.
ik ben een mac user.. :(
dus ik vrees dat heidisql geen optie is voor mij.. :(
Googlen we even verder:
https://alternativeto.net/software/heidisql/?platform=mac
MySQL Workbench, Sequel Pro,DataGrip, naviCat en zo zijn er nog een hoop alternatieven.
Dan https://alternativeto.net/software/heidisql/?platform=mac
MySQL Workbench, Sequel Pro,DataGrip, naviCat en zo zijn er nog een hoop alternatieven.