AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Brauche dringend Hilfe bei SQL-Abfrage!
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche dringend Hilfe bei SQL-Abfrage!

Ein Thema von jschade · begonnen am 2. Sep 2003 · letzter Beitrag vom 2. Sep 2003
Antwort Antwort
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#1

Re: Brauche dringend Hilfe bei SQL-Abfrage!

  Alt 2. Sep 2003, 13:47
Dein Datenbankmodell scheint nicht so prall zu sein.

Ich sehe in Schulungen_Ist eine ID 245 mit gleichem Namen
wie in Schulungen_Soll die mit ID 215.

Ok - kann Zufall sein oder ist die selbe gemeint?

Vorschlag

Tabelle 1: Schulungen
Felder: IdSchulungen,Bezeichnung etc.
Feld IDSchulungen als AutoIncrement (oder wie auch immer das in Access heisst)

Tabelle 2: Mitarbeiter
Felder: IdMitarbeiter,Name, etc
Feld IdMitarbeiter wieder Typ AutoIncrement

Tabelle 3: SchulungsSoll
Felder: IdSchulungsSoll,IdMitarbeiter,IdSchulungen,Termin. (Ende!)

Tabelle 4: SchulungsIst
Felder: IdSchulungsIst,IdMitarbeiter,IdSchulungen,Termin. (Ende!)

Dann kannst Du mit:
SQL-Code:
    select MA.*,
           S.Bezeichnung,
           SS.Termin
      from Mitarbeiter MA
inner join SchulungsSoll SS
        on SS.IdMitarbeiter = MA.IdMitarbeiter
inner join Schulungen S
        on S.IdSchulungen = SS.IdSchulungen
alle Mitarbeiter herausholen, die für Schulungen vorgesehen sind.
Willst Du z.B. nur einen Termin haben dann fügst Du hinten dran:
     where SS.Termin = 'Tag.Monat.Jahr' Alle Mitarbeiter, die schon fertig haben bekommst Du mit

SQL-Code:
    select MA.*,
           S.Bezeichnung,
           SI.Termin
      from Mitarbeiter MA
inner join SchulungsIst SI
        on SI.IdMitarbeiter = MA.IdMitarbeiter
inner join Schulungen S
        on S.IdSchulungen = SS.IdSchulungen
Den SchulungsStand des Mitarbeiters Nr 15 (Soll und Ist) erhältst Du z.B. so:
SQL-Code:
         select S.Bezeichnung,
                SS.Termin as Geplant,
                SI.Termin as Absolviert
           from Mitarbeiter MA
     inner join SchulungsIst SS
             on SS.IdMitarbeiter = MA.IdMitarbeiter
     inner join Schulungen S
             on S.IdSchulungen = SS.IdSchulungen
left outer join SchulungsIst SI
             on SI.IdMitarbeiter = MA.IdMitarbeiter
          where MA.IdMitarbeiter = 15
Das ganze funzt, wenn Access ANSI-SQL mitmacht.

Gruss
Tim Leuschner
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz