insert into mit between-Anweisung

c-i-k-o

Mitglied
Hallo Zusammen,

ich habe folgendes Problem:
Ich habe eine Datenbank für die Verwaltung der Mitarbeiter erstellt. Diese Datenbank soll durch eine Java-GUI bedienbar sein.
z.B.
Eingabe über die Java-GUI
MitarbeiterID.......... Arbeitsstunden.........KWvon.........KWbis
4............................2............................1..................3

So, wenn ich solch eine Eingabe mache, sollen im Hintergrund diese Daten in die Datenbank gespeichert werden.
z.B.:
Kalender
MitarbeiterID..........KW1..........KW2..........KW3..........KW4
4...........................2................2...............2

Wie kann man so etwas programmieren?
Ich habe sowas wie
Java:
String kalender = SQL.EXE("Insert into kalender (between kw"+KWvon+" and kw"+KWbis+") VALUES (Arbeitsstunden) where MitarbeiterID = "+id);

das klappt leider nicht...

Ich weiss leider auch nicht mehr weiter.
Würde auf eure Hilfe sehr freuen...

MfG
c-i-k-o
 
M

Marcinek

Gast
In Relationalen Datenbanken geht das nicht.

Du kannst nix selektieren, was nicht da ist ^^.

Lade alle Daten, berechne die Lücken und füge da sachen ein.
 
S

SlaterB

Gast
welch verrückte Frage,

wie sieht die DB aus? welche Spalten hat die Tabelle kalender, sind KW1, KW2 usw. richtige Spalten oder meinst du damit verschiedene kalender-Einträge?

sollen überhaupt grundsätzlich neue Einträge erstellt werden (Insert Into)
oder vorhandene geändert werden (Update .. where id = ..)?

"VALUES (Arbeitsstunden)" ist einfach nur ein String, da wird nicht automatisch eine Java-Variable verwendet falls du das vorhast,
machst du weiter hinten bei der 'id'-Variablen doch auch anders, oder ist 'Arbeitsstunden' hier der Spaltenname?
hat dann aber in Values() nichts zu suchen und einmal mehr zeigt sich, dass (mir zumindest) vollkommen unklar ist, wie die Tabelle aussieht, was passieren soll,

beim Between muss man wohl gar nichts mehr groß analysieren,

hier paar Möglichkeiten, um ein bisschen Gefühl für richtige Richtungen zu bekommen:

Code:
Insert into kalender VALUES (23, 1, 2) 
Insert into kalender VALUES (23, 2, 2) 
Insert into kalender VALUES (23, 3, 2)
// für angenommene Spalten Id, KW, Arbeitsstunden 3x Insert von 2 Stunden in KW 1-3 für Id 23

Code:
update kalender set arbeitsstunden=2 where id = 23 and kw between 1 and 3
// hier Annahme dass schon Einträge vorhanden sind für Id und alle Wochen, Arbeitsstunden setzen
// between-Syntax besser noch nachschauen, nur pauschal notiert
 
T

Tomate_Salat

Gast
Hast du ernsthaft Spalten von:
kw1 ... kw52?

Aber mal abgesehen davon. Ich wüsste nicht, wie du das ohne SP lösen könntest. Ansonsten kannst du den Insert(oder update) im Code zusammenbauen und dann so absenden.
 

c-i-k-o

Mitglied
welch verrückte Frage,

wie sieht die DB aus? welche Spalten hat die Tabelle kalender, sind KW1, KW2 usw. richtige Spalten oder meinst du damit verschiedene kalender-Einträge?

sollen überhaupt grundsätzlich neue Einträge erstellt werden (Insert Into)
oder vorhandene geändert werden (Update .. where id = ..)?


"VALUES (Arbeitsstunden)" ist einfach nur ein String, da wird nicht automatisch eine Java-Variable verwendet falls du das vorhast,
machst du weiter hinten bei der 'id'-Variablen doch auch anders, oder ist 'Arbeitsstunden' hier der Spaltenname?
hat dann aber in Values() nichts zu suchen und einmal mehr zeigt sich, dass (mir zumindest) vollkommen unklar ist, wie die Tabelle aussieht, was passieren soll,

// between-Syntax besser noch nachschauen, nur pauschal notiert

Also ok ich versuchs etwas deutlicher zu formulieren.

Meine Datenbanktabelle "Kalender" schaut so aus

MitarbeiterID | Kw1 | Kw2 | ............. | kw52


ich habe eine Klasse in Java, wo ich die Mitarbeiter hinzufügen kann; d.h. mit den Attributen MA_ID, Vorname, Name, Arbeitsstunden und Kalenderwochen
Diese Daten werden in der DB-Tabelle "mitarbeiter" gespreichert, aber auch gleichzeitig wird nur die "MA_ID" in die DB-Tabelle "Kalender" aufgenommen.
beispiel:
Kalender
MA_ID | KW1 | KW2 .....
4......... | |

die Tabelle Kalender habe ich deswegen gemacht, weil ich gerne ausgeben lassen würde, wie viele freie Stunden der Mitarbeiter noch z.b. in der KW20 hat...

dazu habe ich mir gedacht, dass ich in die DB eine Hilfstabelle "Kalendar" baue und dort die Arbeitsstunden zu den jeweiligen KWs zufüge.... um somit die übrige Zeit durch die Auswahl der "MA_ID" und "KW?" ermitteln lasse

die Einträge "KW von" und "KW bis" und "Arbeitsstunden" mache ich in einer seperaten klasse die sich "Planung" nennt
ich möchte, dass wenn ich die Einträge der Arbeitsstunden für KW von und KW bis mache, dass diese auch in die Tabelle Kalendar mit aufgenommen werden, undzwar sollen die KW's die zwischen KW von und KW bis liegen
auch mit den Arbeitsstunden befüllt werden

...und die Eignaben in Java parse ich natürlich ...
 
Zuletzt bearbeitet:

c-i-k-o

Mitglied
:) wollte eigentlich dass es automatisch abläuft wenn ich auf speichern klicke, denn es kann ja auch sein dass der Teamleiter meint Arbeitsstunden von KW 20 bis KW 30 zu verplanen
 
S

SlaterB

Gast
den set-Teil kannst du als String zusammenbauen, nicht schön, aber denkbar,

ansonsten hast du dich mit sovielen einzelnen Attributen selbst geschadet,
genauso wie in Java viele einzelne Variablen kw1, kw2, kw3 usw. nicht 'automatisch' bearbeitet werden können,
die Antwort auf solche Foren-Threads ist dann immer
http://www.java-forum.org/top-fragen/62032-fragen-variablennamen.html

in der DB bist du mit einer Tabelle Id, KW, Arbeitstunden evtl. flexibler, wie gesagt dann vielleicht
> update kalender set arbeitsstunden=2 where id = 23 and kw between 1 and 3
oder ähnliches möglich

aber ein Freibrief ist das auch nicht, 52 Einträge statt einem wären dann nötig und um die anzulegen
muss man einiges mehr arbeiten, immerhin ginge wohl eine Schleife

für GUI-Abfragen a la 'wieviel Stunden hat Mitarbeitet X in Woche 17' kann das aber auch helfen,
besonders wenn wieder Intervalle abzufragen,
mit der bisherigen Tabelle müsstest du einzelnen Spalten kw17 usw. wiederum zusammenbasteln
 
Zuletzt bearbeitet von einem Moderator:

c-i-k-o

Mitglied
hmm nach ein bisschen mehr Überlegen habe ich mich an eine Schleife versucht
...und es klappt :)

an alle, die vielleicht ein ähnliches Problem mal haben könnten:
Java:
int kwvh = kv; // die eingabe KWvon einfach auf eine Hilfsvariable verweisen
                                while(kwvh < KWbisb+1)   //die Schleife hochzählen lassen bis kwvh < KWbis+1 erreicht hat
                                {
                                    SQL.EXE("Update kalender set kw"+kwvh+" = "+arbeitsstunden+" where ma_id = "+id);
                                    kwvh += 1; //kwvh nach jedem durchlauf hochzählen
                                }

ich weiss zwar nicht, ob das die optimalste Lösung ist, zu mind klappt es ;)

Danke Alle, die mir so schnell ihre Hilfe angeboten haben!
 
T

Tomate_Salat

Gast
Du kannst auch mehrere Spalten auf einmal updaten:
[sql]
UPDATE table_name
SET column1=value, column2=value2,...
[/sql]

Wenn du mehrer Statements abschickst, solltest du diese in einer Transaktions sichern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
D Problem mit INSERT INTO Datenbankprogrammierung 19
S insert into table Datenbankprogrammierung 8
S Insert in Datenbank Datenbankprogrammierung 15
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
K INSERT INTO bei Windows 2005 SQL Server Standard Edition . Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben