1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Erklärung benötigt für SQL-Abfrage mit INNER JOIN

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von Lautsprecher, 7. Oktober 2005.

  1. Lautsprecher

    Lautsprecher Grünschnabel

    Hallo,
    ich habe folgendes Problem. Ich habe eine Java-Applikation erstellt in der die Mitarbeiter in Textfeldern ihre Personalnummer und ihren Namen eingeben.
    Nach Knopfdruck wird ein entsprechender Vorgang gebucht, sprich ein INSERT in auf den MS SQL Server durchgeführt.

    Jetzt gibt es folgendes Problem: Das INSERT darf nur durchgeführt werden, wenn auch die Personalnummer zum Mitarbeiter paßt.

    Hier der SELECT den ich mir hierfür bisher überlegt habe.

    Code (Text):
    1. SELECT     Zeiterfassung_test.*, Mitarbeiter.Nachname
    2. FROM  Zeiterfassung_test INNER JOIN   Mitarbeiter ON
    3. Zeiterfassung_test.employee_ID = Mitarbeiter.PersonalNr
    4. WHERE     (Mitarbeiter.Nachname = 'XXXXXX')
    5. AND (Zeiterfassung_test.employee_ID = '99999')
    6. AND (Zeiterfassung_test.check_in_date = '20051007')
    7. ORDER BY Zeiterfassung_test.employee_ID
    Momentan habe ich immer noch ein Ansatz-Problem, da ich nicht weiß was Codetechnisch am sinnvollsten ist. Hier meine Überlegungen:

    1. Zuerst einen Select um zu sehen ob die Personalnr und der Nachname zusammen
    passen!
    Problem: Wie fange ich das Ereignis ab, wenn Personalnr und der Nachname nicht
    zusammen passen?
    Was steht dann im Result Set rs drinnen? NULL oder "" ?
    Kann man dafür im SQL-Statement irgendeine Variable setzen oder
    fängt man den Fehler am Besten im JAVA-Code?
    Was nicht funktioniert if (rs = NULL) ....... Bildschirmausgabe "Bitte
    erneute Eingabe der Pers und Name"


    Zum Schluss einen INSERT

    2. Zuerst die Mitarbeiter-Tabelle auslesen und in Java mit der Textfeld-Eingabe überprüfen
    if (mitarbeiter.nachname = textfeldnachname)
    INSERT
    ELSE
    Bildschirmausgabe "Pers und Nachname stimmen nicht"


    3. Das ganze irgendwie sofort in den INSERT - Befehl einbauen, falls das überhaupt
    möglich ist
  2. Nico Graichen

    Nico Graichen aka gemballa Moderator

    Hi,
    Beim SQL Server ist auch folgende IF-abfrage möglich, vielleicht hilft sie dir ja weiter:
    Code (Text):
    1.  
    2. IF EXISTS (SELECT bla FROM blub WHERE x = y)
    3.     PRINT 'gibts'
    4. ELSE
    5.     PRINT ' gibts nicht'
    6.  
    Anstatt der Ausgabe kann natürlich jeder andere SQL-Befehl auch ausgeführt werden.
  3. Lautsprecher

    Lautsprecher Grünschnabel

    Hi niggo
    hängt EXISTS und PRINT zusammen oder könnte ich dann auch in die IF-Bedingung mein INSERT-Statement einbauen? Sorry für die Dumme Frage, aber in SQL bin ich nicht wirklich fit!
  4. Nico Graichen

    Nico Graichen aka gemballa Moderator

    noch mal zum nachlesen ;)

Diese Seite empfehlen