Wie kann bei der Datumsabfrage eine Schleife erstellt werden?Hallo zusammen
Ich versuche, die Datenbank mit JMP abzufragen. In meiner Abfrage ändere ich den dateNow-Wert manuell von Tag 1 auf 30 und führe dann das Skript aus. Aber ich musste ein weiteres erstellen, das sich durch alle Tage zieht.
Wie kann ich eine Schleife erstellen, die jedes Datum von Juli 2023 bis Januar 2024 abfragt?
dateNow = "01/11/2024";
dt = Open Database( "DSN=databasename;UID=root;PWD=admin;APP=JMP;DATABASE=dbSample").
"select distinct name, age, sex, address
from db1
where date between '" || dateNow || " 00:00:00 AM' and '" || dateNow || " 11:59:59 PM'",
"raw" );
Automatisierung und SkripterstellungBetreff: Wie kann ich bei der Datumsabfrage eine Schleife erstellen?Hier ist meine Lösung.
Names Default To Here( 1 );
For( theDate = Informat( "01/07/2023", "d/m/y" ), theDate <= Informat( "31/1/2024", "d/m/y" ),
theDate = theDate + In Days( 1 ),
// Create the dateNow variable from the index variable "theDate"
dateNow = Format( theDate, "d/m/y" );
dt = Open Database( "DSN=databasename;UID=root;PWD=admin;APP=JMP;DATABASE=dbSample").
"select distinct name, age, sex, address
from db1
where date between '" || dateNow || " 00:00:00 AM' and '" || dateNow || " 11:59:59 PM'",
"raw" );
);
Betreff: Wie kann ich bei der Datumsabfrage eine Schleife erstellen?Abhängig von Ihrem SQL können Sie möglicherweise den Index vom Datum abziehen (möglicherweise ist eine Kürzung/Änderung Ihrer Abfrage erforderlich).
Names Default To Here(1);
start_date = 01Jul2023;
end_date = 31Jan2024;
datecount = Date Difference(start_date, end_date, "Day");
Show(As Date(start_date + In Days(datecount)));
sql_template = "\[select sysdate - ^i^ startdate, sysdate - ^i - 1^ enddate from dual]\";
For(i = 1, i <= datecount, i++,
cur_sql = Eval Insert(sql_template);
Show(cur_sql);
);
Außerdem möchten Sie höchstwahrscheinlich die Abfrageergebnisse innerhalb der Abfrage verketten, und das Hinzufügen einer einfachen Druckprotokollierung kann hilfreich sein (normalerweise drucke ich mindestens Folgendes aus: aktueller Index/Datum, der abgefragt wird, wie viele Zeilen Sie zurückbekommen haben und wie lange die Abfrage gedauert hat). ).