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

Lautsprecher

Erfahrenes Mitglied
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:
SELECT     Zeiterfassung_test.*, Mitarbeiter.Nachname
FROM  Zeiterfassung_test INNER JOIN   Mitarbeiter ON 
Zeiterfassung_test.employee_ID = Mitarbeiter.PersonalNr
WHERE     (Mitarbeiter.Nachname = 'XXXXXX') 
AND (Zeiterfassung_test.employee_ID = '99999') 
AND (Zeiterfassung_test.check_in_date = '20051007')
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
 
Hi,
Beim SQL Server ist auch folgende IF-abfrage möglich, vielleicht hilft sie dir ja weiter:
Code:
IF EXISTS (SELECT bla FROM blub WHERE x = y)
    PRINT 'gibts'
ELSE
    PRINT ' gibts nicht'
Anstatt der Ausgabe kann natürlich jeder andere SQL-Befehl auch ausgeführt werden.
 
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!
 
Zurück