Insert mit Select

Status
Nicht offen für weitere Antworten.

Solna

Mitglied
Hallo!

Ich habe ein Problem mit Insert Anweisung:

Code:
INSERT INTO `simulation` (wert, nab_kunde_stk, nab_nachschub_stk,lib_stk,umfuhren_stk,
umfuhren_neu_stk,umfuhren_eingelagert_stk,nachschub_bestellt_stk,
ansprache_stk, fakturiermenge_stk,retouren_eingelagert_austr,
retouren_eingelagert_deutsch,retouren_eingelagert_gesamt) 

values ("Wert") //Das geht nicht !!!Dieses Wert möchte ich in erste Spalte "per hand" eingeben und weitere Werte aus der Tabelle holen:

SELECT NAB_KUNDE_STK where nachschub_datum="2008-01-25", 
 //!!!Das geht nicht, weil where Klausel muss nach FROM Klausel stehen....

nab_nachschub_stk where nachschub_datum="2008-01-25",

 lib_stk,

sum(UMFUHREN_STK ),
sum(UMFUHREN_NEU_STK),
sum(UMFUHREN_EINGELAGERT_STK),
sum(NACHSCHUB_BESTELLT_STK ),
ANSPRACHE_STK,
sum(FAKTURIERMENGE_STK ),
sum(RETOUREN_EINGELAGERT_AUSTR) ,
sum(RETOUREN_EINGELAGERT_DEUTSCH),
sum(RETOUREN_EINGELAGERT_GESAMT)

FROM b_daten;

So, und wenn ich das einzeln mache, wird es untereinander eingefügt (nicht in eine Zeile).
Vielleicht weißt jemand, wie ich es hinbekommen kann?

Vielen Dank
 

Sergeant_Pepper

Bekanntes Mitglied
Hallo Solna,

mit welcher Datenbank (MySQL, Postgres, Oracle,...) arbeitest du?

Soll das Statement in deiner Frage tatsächlich ein einziger SQL-Befehl sein?
Wenn ja, dann darf die WHERE-Klausel erst nach der FROM-Klausel erfolgen (hast du ja selber geschrieben).
Und die VALUES-Klausel mit einem einzigen Wert innerhalb der runden Klammer passt auch nicht, da du hinter "simulation" 13 Spalten aufgelistet hast. Die Anzahl der Spalten an dieser Stelle muss gleich sein zur Anzahl der Spalten in der SELECT-Klausel.

Beispiel:
Code:
insert into test(sp1, sp2)
select f1, f2 from quelle where f3>10
Zwei Spalten der Tabelle "test" sollen belegt werden, also werden zwei Spalten aus "quelle" selektiert.

Wenn du in deinem Fall das Feld "wert" später manuell füllen willst, kannst du es stehen lassen und fügst im SELECT "NULL" als erste Spalte ein.
Code:
insert into test(sp1, sp2)
select NULL, f2 from quelle where f3>10
oder du kannst du es hinter "simulation" weglassen (und weiter hinten im SELECT auch)
Beispiel:
Code:
insert into test(sp2)
select  f2 from quelle where f3>10
 

Solna

Mitglied
Hallo Sergeant Pepper,

Es muss nicht eine SQL Anfrage sein, aber, wenn ich SELECT für jeder Wert einzeln mache, dann wird es nicht in die selbe Zeile eingefügt, sondern in die Zeile drunter usw. Kennst du vielleicht ein Befehl, der mir hier helfen könnte?

und noch ein Problem, dass ich z.B. für den ersten Wert WHERE brauche, für den zweiten auch und für den dritten SUM() usw. Ich kann nicht ein WHERE einfach am Ende schreiben...

:?
 

Sergeant_Pepper

Bekanntes Mitglied
Solna hat gesagt.:
Es muss nicht eine SQL Anfrage sein, aber, wenn ich SELECT für jeder Wert einzeln mache, dann wird es nicht in die selbe Zeile eingefügt, sondern in die Zeile drunter usw. Kennst du vielleicht ein Befehl, der mir hier helfen könnte?
Die Beispiele aus meiner ersten Antwort tun genau das.

und noch ein Problem, dass ich z.B. für den ersten Wert WHERE brauche, für den zweiten auch und für den dritten SUM() usw. Ich kann nicht ein WHERE einfach am Ende schreiben...

Hmmmm ???:L
Eine WHERE-Klausel steht nun mal am Ende ...

Beispiel:
Code:
select f1, f2, f3
from quelle
where f1='a'
and f2>5
and f3<7

Ich sehe gerade, dass du die Gruppenfunktion SUM einsetzt. Dann musst du für die Gruppenfunktion nicht WHERE, sondern HAVING verwenden.
Dann könnte es so aussehen:
Code:
select f1, sum(f2), sum(f3)
from quelle
where f1='a'
and f5 <200
group by f1
having sum(f2) > 10
 

Solna

Mitglied
Ja, stimmt!!
Danke, du hast mir sehr geholfen! :D
Jetzt kann ich weiter machen...aber

Nur die Frage, wie ich einzelne Select Anfragen in eine Zeile reinsreibe bleibt.

z.B. wenn ich zwei Insert-Select Einweisungen nacheinander schreibe:
Code:
insert into table (a,b,c) select a,b,c from table;
insert into table (d,e,f) select d,e,f from table;

Dann werden a,b,c in erste Zeile eingefügt und d,e,f - in die zweite Zeile.
Wie kann ich dann alle in erste Zeile kriegen.

Ich benutze MySQL Datenbank.
 

Sergeant_Pepper

Bekanntes Mitglied
nein...
Sorry, ich glaube, dass du die Kombination von INSERT und SELECT in einem SQL-Befehl völlig falsch verstanden hast.

1. der INSERT-Teil fügt soviele Zeilen ein, wie der SELECT-Teil liefert (unter Berücksichtigung von WHERE und HAVING-Klauseln des SELECT-Teil)

2. in deinem kurzen Beispiel selektierst du aus der Tabelle, in die du einfügen willst.

3. die erste Zeile deines Kurz-Beispiels selektiert die Felder a, b, und c aus Tabelle 1 und fügt sie in die Felder a, b und c von Tabelle 2 ein. Es werden mehrere Zeilen angefügt, genau so viel wie der SELECT liefert. Soweit gut

4. die zweite Zeile deines Kurz-Beispiels selektiert die Felder d, e, und f aus Tabelle 1 und fügt sie in die Felder d, e und f von Tabelle 2 ein. Es werden mehrere Zeilen angefügt, genau so viel wie der SELECT liefert.

Wenn ich Zeile 1 und 2 deines Kurz-Beispiels zusammen betrachte, gibt es eine Tabelle mit 6 Spalten (a bis f). Ist das so gemeint?
Die erste Zeile fügt n Zeilen ein, in denen die Spalten a bis c belegt sind. Die zweite Zeile fügt n Zeilen ein, in denen die Spalten d bis f belegt sind.

Wenn du willst, dass alle 6 Spalten belegt werden, gibt es zwei Möglichkeiten:
1. du baust das INSERT-SELECT KOmmando entsprechend zusammen
oder
2. du fügst mit INSERT-SELECT Zeilen an, in denen nur 3 Spalten belegt sind. Die übrigen Spalten belegst du dann mit einem UPDATE-Befehl
 

Solna

Mitglied
Natürlich UPDATE!

Mann, ist mir jetzt peinlich, dass ich UPDATE ganz vergessen habe! :oops:

Vielen Dank!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A MySQL Select und Insert in Java Datenbankprogrammierung 15
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
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
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
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
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
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
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
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
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

Ähnliche Java Themen

Neue Themen


Oben