Hallo liebe Leute,
es soll eine Auswertung aus meinen Delphiprogramm herraus gemacht
werden. Deshalb möchte ich mittels einer Store Procedure eine
Auswertung machen. Das Problem ist nur, daß ich dafür sehr viele
Select´s benötige und somit die Auswertung sehr lange dauert. Kann mir
hier vielleicht eine einfachen Weg zeigen, um einige Selects
einzusparen.
Als Server benutze ich eine INterbase6 Server und Delphi5
Ich beschreibe mal einen Auszug aus meinen Tabelle:
Tabelle: Auftrag
benötigte Felder: AftZaehler, IDNL,
IDAuftraege,Solltermin1,Solltermin2,Solltermin3,So lltermin4
Tabelle: NL
benötigte Felder: NLZaehler, NL Beschreibung
Hier sind 8 Zeilen vorhanden. NL 1 - NL 8 mit dem Zaehler 1 -8. Der
Zähler steht in IDNL der Tabelle 1 drin
Tabelle: Teilauftraege
benötigte Felder: Zaehler,IDAuftrag,Zeitbereich1,Zeitbereich2,Zeitbe reich3,Zeitbereich
Bei IDAuftrag steht der AFTZaehler der Auftrag drin
Meine Auswertung sollte nun so aussehen:
Ich brauche eine Auswertung über die Zeit jeder einzelnen NL je
Zeitbereich (es sind 8 Stück NL´s und 4 Zeitbereich)über das ganze
Jahr. z.B NL1 KW 1 - 52, Zeitbereich 1,
Zeitbereich2,Zeitbereich3,Zeitbereich4, NL2 KW 1-52, Zeitbereich 1,
Zeitbereich2,Zeitbereich3,Zeitbereich4, usw bis zur 8. NL. (Die
Gesamtzeit je Zeitbereich je Woche) Zu jedem Auftrag können eine
Anzahl X (unbekannt) Teilauftraege vorhanden sein. Der Verknüpfung
erfolgt über das Feld IDAuftrag, dort steht der Zaehler von
Hauptauftrag drin. Die Zuordnung zu NL ist über das Feld IDNL zur
Tabelle NL,NLZaehler realisiert. Die Solltermine für den Auftrag
stehen in den Felder Solltermin1 - 4 drin. Dabei handelt es sich um
eine Date Feld. Die Umrechnung dieses Termins zu KW habe ich schon mit
einer External Function für Interbase Erledigt. Die Zeit Steht in der
Feldern Zeitbereich1 - 4 drin. Es handelt sich dabei um ein Numeric
18,2. Dies Minuten sind Industrieminuten und können somit einfach
Summiert werden.
Die Auswertung sollte nun einfach dieses machen. Summiere alle Zeiten
der Tabelle Teilaufträge der Spalte Zeitbereich1, summiere alle Zeiten
der Spalte Zeitbereich2, summiere alle Zeiten der Spalte Zeitbereich3,
summiere alle Zeiten der Spalte Zeitbereich4, je Woche (die Woche
ergibt sich aus der Tabelle Auftrag mit der Spalte Solltermin 1 für
Zeitsumme1, Solltermin2 für Zeitsumme2 usw) je NL. die Nl ergibt sich
aus der Tabelle NL oder IDNL der Tabelle Auftrag.
Ich habe diese schon mehrfach versucht und bekomme es einfach nicht
hin. Ich brauche für jeden Zeitbereichereich ein Select und das ganze
8 mal (für jede NL 1 mal). Das sind dann schon mal 32 Select und Dauer
eine ganze Weile.
Kann mir jemand helfen und das ganze vereinfachen ?
Vielen Danke schon mal im Voraus.
es soll eine Auswertung aus meinen Delphiprogramm herraus gemacht
werden. Deshalb möchte ich mittels einer Store Procedure eine
Auswertung machen. Das Problem ist nur, daß ich dafür sehr viele
Select´s benötige und somit die Auswertung sehr lange dauert. Kann mir
hier vielleicht eine einfachen Weg zeigen, um einige Selects
einzusparen.
Als Server benutze ich eine INterbase6 Server und Delphi5
Ich beschreibe mal einen Auszug aus meinen Tabelle:
Tabelle: Auftrag
benötigte Felder: AftZaehler, IDNL,
IDAuftraege,Solltermin1,Solltermin2,Solltermin3,So lltermin4
Tabelle: NL
benötigte Felder: NLZaehler, NL Beschreibung
Hier sind 8 Zeilen vorhanden. NL 1 - NL 8 mit dem Zaehler 1 -8. Der
Zähler steht in IDNL der Tabelle 1 drin
Tabelle: Teilauftraege
benötigte Felder: Zaehler,IDAuftrag,Zeitbereich1,Zeitbereich2,Zeitbe reich3,Zeitbereich
Bei IDAuftrag steht der AFTZaehler der Auftrag drin
Meine Auswertung sollte nun so aussehen:
Ich brauche eine Auswertung über die Zeit jeder einzelnen NL je
Zeitbereich (es sind 8 Stück NL´s und 4 Zeitbereich)über das ganze
Jahr. z.B NL1 KW 1 - 52, Zeitbereich 1,
Zeitbereich2,Zeitbereich3,Zeitbereich4, NL2 KW 1-52, Zeitbereich 1,
Zeitbereich2,Zeitbereich3,Zeitbereich4, usw bis zur 8. NL. (Die
Gesamtzeit je Zeitbereich je Woche) Zu jedem Auftrag können eine
Anzahl X (unbekannt) Teilauftraege vorhanden sein. Der Verknüpfung
erfolgt über das Feld IDAuftrag, dort steht der Zaehler von
Hauptauftrag drin. Die Zuordnung zu NL ist über das Feld IDNL zur
Tabelle NL,NLZaehler realisiert. Die Solltermine für den Auftrag
stehen in den Felder Solltermin1 - 4 drin. Dabei handelt es sich um
eine Date Feld. Die Umrechnung dieses Termins zu KW habe ich schon mit
einer External Function für Interbase Erledigt. Die Zeit Steht in der
Feldern Zeitbereich1 - 4 drin. Es handelt sich dabei um ein Numeric
18,2. Dies Minuten sind Industrieminuten und können somit einfach
Summiert werden.
Die Auswertung sollte nun einfach dieses machen. Summiere alle Zeiten
der Tabelle Teilaufträge der Spalte Zeitbereich1, summiere alle Zeiten
der Spalte Zeitbereich2, summiere alle Zeiten der Spalte Zeitbereich3,
summiere alle Zeiten der Spalte Zeitbereich4, je Woche (die Woche
ergibt sich aus der Tabelle Auftrag mit der Spalte Solltermin 1 für
Zeitsumme1, Solltermin2 für Zeitsumme2 usw) je NL. die Nl ergibt sich
aus der Tabelle NL oder IDNL der Tabelle Auftrag.
Ich habe diese schon mehrfach versucht und bekomme es einfach nicht
hin. Ich brauche für jeden Zeitbereichereich ein Select und das ganze
8 mal (für jede NL 1 mal). Das sind dann schon mal 32 Select und Dauer
eine ganze Weile.
Kann mir jemand helfen und das ganze vereinfachen ?
Vielen Danke schon mal im Voraus.
Comment