Bestimmte Daten aus verschiedenen Tabellen in einer anderen Tabelle zusammenführen
Hallo,
ich hab das problem, das ich bestimmte daten aus 5 Tabellen in einer 6.Tabelle zusammenführen muß. (sind Temporär und ändern sich immer wieder bei jeder eingabe) Dazu hab ich diesen ansatz, welcher bei änderung eines feldes aktiv wird.:
do as server
for i in select “Tour 31” where “planzeit passt” = true or “planzeit passt” = false do
(select Optimierung where year(“Vorgabe datum”) = year(i.“Vorgabe datum”) and month(“Vorgabe datum”) = month(i.“Vorgabe datum”) and day(“Vorgabe datum”) = day(i.“Vorgabe datum”)).(“31 planzeit passt” := i.“planzeit passt”)
end
end;
do as server
for p in select “Tour 32” where “planzeit passt” = true or “planzeit passt” = false do
(select Optimierung where year(“Vorgabe datum”) = year(p.“Vorgabe datum”) and month(“Vorgabe datum”) = month(p.“Vorgabe datum”) and day(“Vorgabe datum”) = day(p.“Vorgabe datum”)).(“32 planzeit passt” := p.“planzeit passt”)
end
end;
Das funktioniert ist mir aber zu langsam. Gibt es eine möglichkeit das es schneller geht, bzw das ich dies auf Tabellenebene bei änderung hin bekomm um die last zu teilen ?
es wird ein Ja/Nein feld abgefragt, der jeweilige Status in Optimierung in bezug auf das datum übernommen.
3 Antworten
-
Ich würde es so versuchen:
---
do as server
for i in select Optimierung do
i.“31 planzeit passt”:=first(select “Tour 31”[“Vorgabe Datum”=i.“Vorgabe Datum”]). “planzeit passt”;
i.“32 planzeit passt”:=first(select “Tour 32”[“Vorgabe Datum”=i.“Vorgabe Datum”]). “planzeit passt”
end
end
---
Leo
-
Danke Leo,
Mit First frag ich ja nur den ersten ab. Es handelt sich aber um eine tabelle welche das ganze Jahr als Datum (Vorgabe datum) hat. Wenn ich in der tabelle Planung nun die planzeit eingebe, wird in den Tour Tabellen die planzeit von today() an eingeschrieben und das planzeit passt Feld auf True oder false gestellt. Das klappt und geht schnell. Um jetzt die datumswerte wo das Feld planzeit passt auf true steht anzeigen zu lassen wollte ich die Daten in einer separaten Tabelle haben. Geht eigentlich nur darum von allen 5 Touren das Datum anzeigen zu lassen wo planzeit passt den Wert true hat.
Anzeigen lasse ich mir das Datum so
if Optimierung = true and Auslieferdatum = null then
let mm := (select “Tour 31” where “planzeit passt” = true and “Vorgabe datum” > today());
Auslieferdatum := first(mm.“Vorgabe datum”)
end;
if Optimierung = true and Auslieferdatum then
let Aus := Auslieferdatum;
let bb := (select “Tour 31” where “planzeit passt” = true and “Vorgabe datum” > today() and Aus < “Vorgabe datum”);
Auslieferdatum := first(bb.“Vorgabe datum”)
end;
if Optimierung = false then
Auslieferdatum := date(year(Auslieferdatum), month(Auslieferdatum), day(Auslieferdatum) + 1)
endDa bekomm ich aber halt nur eine tabelle abgefragt, oder geht das hier anders und ich denke viel zu kompliziert?
-
Hab zu kompliziert gedacht. Tabelle optimierung braucht man nicht. So geht es schneller und besser:
do as server
let mm := (select “Tour 31” where “planzeit passt” = true and “Vorgabe datum” > today());
let nn := (select “Tour 32” where “planzeit passt” = true and “Vorgabe datum” > today());
“Datum 31” := first(mm.“Vorgabe datum”);
“Datum 32” := first(nn.“Vorgabe datum”);
let myARRAY := [“Datum 32”, “Datum 31”];
let myMAX := max(myARRAY);
let myMIN := min(myARRAY);
Auslieferdatum := myMIN
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 587Ansichten