PDA

Vollständige Version anzeigen : Daten aus verschiedenen Datensätzen in einen Datensatz kopieren


stollnblech
17.09.2018, 09:08
Hallo an Alle,

ich hab mal wieder ein Problem und komme nicht weiter. Vieleicht hat jemand eine Idee oder Lösung dazu. Ich erstelle gerade in der Firma ein Zeiterfassungssystem und lese Daten (welche ich vorgebe ) über Barcodescanner ein. Die Struktur ist folgende:
Barcode=6 Zeichen Fertigungsauftragsnr + 2 Zeichen Arbeitsgange + 1 Zeichen Start (1) oder Ende (6)
ScanZeit = Zeit des Scannens
ScanDatum = Datum des Scannens
Mitarbeiter = Nr des Mitarbeiters

Jetzt habe ich folgendes Problem. Um eine effektive Fertigungszeit zu ermitteln, muss ich die Scanzeiten, welche im Barcode mit einer 6 Enden in den entsprechenden Datensatz setzen, welche die Startzeit hat. Wichtig ist aber dabei, das auch die FertigungsauftragsNr, der Arbeitsgang und der Mitarbeiter gleich sind.

Hier mal ein paar Beispiele, wie die Tabellen aussehen ( verschieden sortiert):

sortiert nach Mitarbeiter
Barcode Scanzeit ScanDatum Mitarbeiter
13123071 09:30:00 01.09.2018 056656
13123076 10:45:00 01.09.2018 056656
13124071 10:46:00 01.09.2018 056656
13125076 11:25:00 01.09.2018 056656
13125071 11:26:00 01.09.2018 056656
13125076 12:10:00 01.09.2018 056656
13123071 09:34:00 01.09.2018 056657
13123076 09:58:00 01.09.2018 056657
13128071 09:58:20 01.09.2018 056657
13128076 12:03:00 01.09.2018 056657
13123071 09:31:00 01.09.2018 056658
13123076 10:18:00 01.09.2018 056658
13132071 10:18:10 01.09.2018 056658
13132076 10:39:30 01.09.2018 056658
13125081 10:39:50 01.09.2018 056658
13125086 11:59:00 01.09.2018 056658

sortiert Scanzeit
Barcode Scanzeit ScanDatum Mitarbeiter
13123071 09:30:00 01.09.2018 056656
13123071 09:31:00 01.09.2018 056658
13123071 09:34:00 01.09.2018 056657
13123076 09:58:00 01.09.2018 056657
13128071 09:58:20 01.09.2018 056657
13123076 10:18:00 01.09.2018 056658
13132071 10:18:10 01.09.2018 056658
13132076 10:39:30 01.09.2018 056658
13125081 10:39:50 01.09.2018 056658
13123076 10:45:00 01.09.2018 056656
13124071 10:46:00 01.09.2018 056656
13125076 11:25:00 01.09.2018 056656
13125071 11:26:00 01.09.2018 056656
13125086 11:59:00 01.09.2018 056658
13128076 12:03:00 01.09.2018 056657
13125076 12:10:00 01.09.2018 056656

Kann mir hier bitte jemand helfen oder hat jemand eine Idee, wie ich den Barcode so ändern könnte, das ich die Daten besser auswerten kann?

Vielen Dank für Eure Hilfe

Glück Auf
Stollnblech

ebs17
21.09.2018, 16:51
Wenn Du auf Antworten hoffst: Hier ist das Code-Archiv, wo man also druckreife allgemeininteressierende LÖSUNGEN vorlegt. Fragen zu eigenen Problemen stellt man im normalen Accessforum.

Schlüssig ist die Fragestellung auch nicht:
Barcode=6 Zeichen Fertigungsauftragsnr + 2 Zeichen Arbeitsgange + 1 Zeichen Start
6+2+1 = 9
Deine Barcodes haben die Länge 8. Würfel hast Du nicht beigelegt.

Ansonsten: Man könnte etwas Datenbank spielen und den Barcode gleich in 3 Felder zerlegen (atomare Inhalte einzeln, 1. Normalform).

Damit gelingt dann folgende einfache Abfrage, wo man dann z.B. Zeitsummen über irgendwas bilden kann:
SELECT
TE.Fertigungsauftragsnr,
TE.Arbeitsgang,
TE.Ende - TA.Start AS Diff,
TE.Mitarbeiter
FROM
(
SELECT
Fertigungsauftragsnr,
Arbeitsgang,
ScanDatum + Scanzeit AS Ende,
Mitarbeiter
FROM
EineTabelle
WHERE
StartEnde = 6
) AS TE
INNER JOIN
(
SELECT
Fertigungsauftragsnr,
Arbeitsgang,
ScanDatum + Scanzeit AS Start,
Mitarbeiter
FROM
EineTabelle
WHERE
StartEnde = 1
) AS TA
ON TE.Fertigungsauftragsnr = Fertigungsauftragsnr
AND
TE.Arbeitsgang = TAArbeitsgang
AND
TE.Mitarbeiter = TA.Mitarbeiter