Active Factory - Abfrage automatisieren

LukasF

Neuer Benutzer
Beiträge
3
Hallo zusammen,

ich habe eine Maschine mit verschiedenen Messstellen. Von diesen Messstellen sollen wöchentlich die Werte automatisch abgefragt und in einer csv-Datei gespeichert werden. Wie kann ich das Ergebnis einer Woche in einer separaten Datei speichern und in der nächsten Woche in einer anderen Datei, so dass es nicht im Zielordner ersetzt wird? Gibt es eine Möglichkeit, den Prozess zu automatisieren, so dass er automatisch die Daten jeder Woche abruft, ohne dass ich sie manuell ändern muss?

Hier ist der Code, mit dem die Daten abgerufen werden. Die Messpunkte sind immer die gleichen und es müsste nur das Datum geändert und manuell gespeichert werden.

SET QUOTED_IDENTIFIER OFF
SELECT * FROM OPENQUERY(INSQL, "SELECT DateTime = convert(nvarchar, DateTime, 20), [N0CRU10FE004XQ005.Mes], [N0CRU10FE001XQ005.Mes], [N0CRU10EN018.Mes]
FROM WideHistory
WHERE wwRetrievalMode = 'Cyclic'
AND wwResolution = 1000
AND wwVersion = 'Latest'
AND DateTime >= '20210501 00:00:00.000'
AND DateTime <= '20210508 23:59:59.000'")

Ich hoffe Sie können mir helfen!

Viele Grüße
Lukas
 
Werbung:
rufe es einfach via CRON auf und erzeuge via date - Aufruf in der shell einen passenden Dateinamen. Im SQL solltest Du dann auch keine festen Datumswerte eintragen (so wie jetzt), sondern via current_date() dynamisch ermitteln.
 
mittels CRON kannst Du unter unixoiden Betriebssystemen zu definierten Zeiten Aktionen durchführen - also z.B. deinen wöchentlichen CSV-Export.
 
Cool! Schon mal danke für den super Tipp.
Wie funktioniert die Abfrage denn mit current_date(), also ich würde die Werte ja gerne automatisch für eine Woche abrufen?
 
Werbung:
Code:
edb=*# create table lukasf(id int generated always as identity primary key, datum date, wert numeric);
CREATE TABLE
edb=*# insert into lukasf (datum, wert) select '2021-06-01'::date + s, random() * 30 from generate_series(1,30) s;
INSERT 0 30
edb=*# select * from lukasf where datum between current_date - 7 and current_date;
 id |       datum        |       wert       
----+--------------------+------------------
 20 | 21-JUN-21 00:00:00 | 5.49636452861176
 21 | 22-JUN-21 00:00:00 | 21.7524460901194
 22 | 23-JUN-21 00:00:00 |  22.083148070015
 23 | 24-JUN-21 00:00:00 | 20.3130988585087
 24 | 25-JUN-21 00:00:00 | 13.8184143451249
 25 | 26-JUN-21 00:00:00 | 27.6191883518526
 26 | 27-JUN-21 00:00:00 | 27.4878177828139
 27 | 28-JUN-21 00:00:00 | 11.6557144569041
(8 rows)

edb=*#
 
Zurück
Oben