MySQL több táblás lekérdezés csv-be rendezése
2018-08-24T13:59:59+02:00
2018-08-24T14:00:00+02:00
2022-08-11T05:50:33+02:00
Gravesz
Sziasztok!

 Szeretnék csv-be exportálni egy adott mérési adatgyűjtő (továbbiakban: eszköz) összes adatpontjához tartozó értéket adott időintervallumban. 
releváns táblák és oszlopok:
       TEszkoz[ID,Nev],
       TAdatPont [ID,Nev],
       TAdat [AdatpontID,IdopontID,Ertek],
       TIdo [ID,Idopont]
Valami ilyesmi formátumban:
idopont;Fomero-V1;Fomero-I1;Fomero-fi1.... (ahol idopont statikus szöveg [Fomero-V1, Fomero-I1;Fomero-fi1]  TAdatPont.Nev egy-egy eleme) 
'2018.06.31 01:00:00';230;70;20...
'2018.06.31 01:05:00';230;70;20...

A probléma ott válik összetetté, hogy nem minden adatponthoz tartozik mérés az egyes időpontokban. (Egyes eszközök több száz adatot küldenek ftp-n egy csv-ben. Nyilván csak azt amihez tartozik friss mérés.) Sajnos az SQL-t eddig csak messziről érintettem.

Első nekifutással ezt tudtam csak össze hozni:

SELECT TAdatPont.Nev as Adatpont, TIdo.Idopont as Idopont, TAdat.Ertek as Ertek From TAdat LEFT JOIN TIdo ON TIdo.ID=TAdat.IdopontID LEFT JOIN TAdatPont ON TAdat.AdatpontID = TAdatPont.ID LEFT JOIN TEszkoz ON TEszkoz.ID=TAdatPont.EszkozID WHERE TEszkoz.Nev='Pelda' AND TIdo.Idopont BETWEEN'2018.07.31 00:00:00' AND '2018.07.31 00:03:00' INTO OUTFILE '.../progponthu.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' LINES TERMINATED BY '\n';
Eredménye ez lett:
Fomero-V1;'2018.06.31 01:00:00';230
Fomero-I1;'2018.06.31 01:00:00';70
.
.
.

Előre is köszönöm a segítséget!
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd