Offen Update SQL Abfrage bleibt hängen

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
Jemand eine Idee warum diese Abfrage nicht korrekt funktioniert ?

Ich habe zwei Tabellen. In der einen eine Preisliste mit Herstellernamen und HAN Nummern und eine zweite Preisliste die nur die Artikel enthält die einen Pfand haben.
Ich möchte nun die Spalte für Pfand in der Preisliste ohne Pfand ergänzen. Dafür hab ich in der ersten Preisliste eine neue Spalte "Pfand" hinzugefügt und dort soll der Pfandpreis der zweiten Liste rein.

Code:
UPDATE Preisliste SET Pfand = (SELECT Max(Pfandliste.Price) FROM Pfandliste WHERE Preisliste.PREFIKS = Pfandliste.Prefiks);

Der Prefiks enthält in diesem Fall die HAN Nummern. Sind diese identisch, soll in die Spalte "Pfand" der Preis aus der Pfandliste eingetragen werden.

Leider kommt keine Fehlermeldung, sondern "HeidiSQL" macht einfach nichts weiter und hängt einfach fest.

Jemand eine Idee woran das liegen kann ? Die Pfandliste enthält knap 400.000 Artikel.

PS.: Und ja Prefiks ist korrekt geschrieben und es ist auch korrekt, das in der einen Tabelle Prefiks groß geschrieben wird und in der anderen klein. ^^
 

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

Ändere das hier:
WHERE Preisliste.PREFIKS = Pfandliste.Prefiks

in das hier:
WHERE Pfandliste.Prefiks = Preisliste.PREFIKS
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Danke für die Info. Ich hatte eh nen kleinen Fehler drin:

Code:
UPDATE Preisliste SET Pfand = (SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS);

Und das Max sollte da eigentlich garnicht mehr mit rein. ^^

Leider bleibt das Update immer noch hängen. :(

Pfand_Update.jpg
 

Anhänge

  • Pfand_Update.jpg
    Pfand_Update.jpg
    30,1 KB · Aufrufe: 16

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

Prüfe mal in Einzelschritten:

Kommt hier ein Ergebnis:
SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = (Ersetze Preisliste.INDEXS mit einem Wert)

Und das hier geht auch:
UPDATE Preisliste SET Pfand = 999
 

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

Stopp!

Da fehlte was:
UPDATE Preisliste SET Pfand = 999 WHERE Pfandliste.Indeks = (Ersetze Preisliste.INDEXS mit einem Wert)
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Code:
SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = 420121;

Funktioniert schon mal ...


Code:
UPDATE Preisliste SET Pfand = 999;

Funktioniert auch...

Code:
UPDATE Preisliste SET Pfand = 999 WHERE Pfandliste.Indeks = 420121;

Funktoniert nicht, da er die Tabelle Pfandliste nicht kennt...

/* SQL Fehler (1054): Unknown column 'Pfandliste.Indeks' in 'where clause' */
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Ich hab das ganze mal über PhpMyAdmin getestet und dort auf "Abfrage simmulieren" geklickt.
Der spuckt mir dabei doch tatsächlich einen Syntax Fehler aus. Ja nur wo soll der sein ?

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Code:
UPDATE Preisliste SET Pfand = (SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS)
 

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

Das hier war falsch:
UPDATE Preisliste SET Pfand = 999 WHERE Pfandliste.Indeks = (Ersetze Preisliste.INDEXS mit einem Wert)

Das muss so aussehen:
UPDATE Preisliste SET Pfand = 999 WHERE Preisliste.INDEXS = (Ersetze Pfandliste.Indeks mit einem Wert)

Möglicherweise erhält man beim SELECT als Ergebnismehr als einen Datensatz mit der gleichen Nummer.
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Es kann auf jeden Fall vorkommen das eine HAN, in dem Fall der INDEXS mehrmals vorkommt.
Die Fehlermeldung "Subquery returns more than 1 row" bekomme ich aber eigentlich nur wenn ich das Statement so schreibe:

Code:
UPDATE Preisliste SET Pfand = (SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS);

Ich habe woanders nun folgenden Lösungsansatz bekommen:

Code:
UPDATE Preisliste, Pfandliste SET Preisliste.Pfand = Pfandliste.Price WHERE Preisliste.INDEXS = Pfandliste.Indeks;

Das erspart mir natürlich das Subquery. Allerdings habe ich hier das selbe Problem. Es passiert einfach nichts.
Irgendwie finde ich nun auch nicht mehr den Button "Abfrage simmulieren" in PhpMyAdmin. Der Button taucht beim SQL Fenster nicht mehr auf.
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Bei

Code:
UPDATE Preisliste SET Pfand = 999 WHERE Preisliste.INDEXS = 420121

erhalte ich folgende Meldung:

Truncated incorrect DOUBLE value: '...'

Packe ich das ganze in Hochkommata:

Code:
UPDATE Preisliste SET Pfand = 999 WHERE Preisliste.INDEXS = 420121

Erhalte ich nur die Meldung:

/* Affected rows: 0 Gefundene Zeilen: 0 Warnungen: 0 Dauer von 1 query: 0,421 sec. */

Die HAN 420121 taucht aber definitiv in beiden Listen aus Indeks bzw. INDEXS auf.
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Ich hab das ganze nun mal mit nur einer einzigen Zeile getestet. Dh. in beiden Tabellen nur eine Zeile drin. Oha, da funktioniert es plötzlich....

Egal welches Statement ich benutze:

Code:
UPDATE Preisliste SET Pfand = 999 WHERE Preisliste.INDEXS = '420121';

oder

Code:
UPDATE Preisliste SET Pfand = (SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS);

Dh. das Statement selber scheint also korrekt zu sein. Er scheint wohl nur Probleme mit doppelten HAN´s/ Artikel zu haben. Und wie fange ich das nun am besten ab ?
Wenn jemand eine Idee hat, immer her damit. ^^
 

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

SELECT Pfandliste.Prefiks, COUNT(Pfandliste.Prefiks) AS Anzahl
FROM Pfandliste
GROUP BY Pfandliste.Prefiks
HAVING ( COUNT(Pfandliste.Prefiks) > 1 )
zeigt doppelte Einträge an.

Mit SELECT DISTICT ... wird nur ein Datensatz angezeigt.
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Hmm sehe gerade das die doppelten HAN´s soweit korrekt sind und bleiben müssen. Sie Beziehen sich auf unterschiedliche Hersteller die in der Liste unter Prefiks stehen.

Also sollte das doch eigentlich helfen:
Code:
UPDATE Preisliste SET Pfand = (SELECT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS AND Pfandliste.Prefiks = Preisliste.PREFIKS);

Es passiert aber leider wieder nichts...grrrrrrrr

Oh sehe gerade das er es doch beendet hat, allerdings meckert er über

/* SQL Fehler (1242): Subquery returns more than 1 row */
/* Affected rows: 0 Gefundene Zeilen: 0 Warnungen: 0 Dauer von 0 of 1 query: 0,000 sec. */

Verstehe ich einfach nicht, wieso er damit Probleme hat
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Danke für das Statement, hatte das selbe nun schon über Excel mir anzeigen lassen. Allerdings müsste ich nach Indeks suchen. Der Prefiks enthält den Hersteller in 3 Buchstabenkürzel. Die Spalte Indeks die HAN Nummer.

Code:
SELECT Pfandliste.Indeks, COUNT(Pfandliste.Indeks) AS Anzahl
FROM Pfandliste
GROUP BY Pfandliste.Indeks
HAVING ( COUNT(Pfandliste.Indeks) > 1 )
oder so:

Code:
SELECT Preisliste.INDEXS, COUNT(Preisliste.INDEXS) AS Anzahl
FROM Preisliste
GROUP BY Preisliste.INDEXS
HAVING ( COUNT(Preisliste.INDEXS) > 1 )
 

zwitsch

Sehr aktives Mitglied
14. November 2007
419
37
AW: Update SQL Abfrage bleibt hängen

Die Rückgabemenge beträgt mehr als 1 Datensatz. Somit kann das Update nicht ausgeführt werden.

Probier es doch mal mit SELECT DISTINCT blabla...

Distinct schränkt die Ergebnismenge auf 1 ein. Es ist aber immer noch zu prüfen, warum mehr als 1 Datensatz zurückkommt und welche der gefundenen der richtige wäre...
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Ich hab zwar nicht viel Hoffnung, aber ich versuche dein Tip natürlich gerne mal aus...

Code:
UPDATE Preisliste SET Pfand = (SELECT DISTINCT Pfandliste.Price FROM Pfandliste WHERE Pfandliste.Indeks = Preisliste.INDEXS AND Pfandliste.Prefiks = Preisliste.PREFIKS);

Hmmm passiert wieder nichts....

Ich hab das ganze mal als reine SELECT Abfrage bei PhpMyAdmin gestartet:

Code:
 SELECT DISTINCT * FROM Pfandliste, Preisliste  WHERE Pfandliste.Indeks = Preisliste.INDEXS AND Pfandliste.Prefiks = Preisliste.PREFIKS

Auch da Lädt sich PhpMyAdmin tot bei....also das ist wirklich merkwürdig.
 

Gabbahead

Aktives Mitglied
18. Februar 2015
167
1
Berlin
AW: Update SQL Abfrage bleibt hängen

Ok....

Code:
SELECT DISTINCT Price FROM Pfandliste, Preisliste WHERE Pfandliste.Indeks = Preisliste.INDEXS AND Pfandliste.Prefiks = Preisliste.PREFIKS;

/* Affected rows: 0 Gefundene Zeilen: 131 Warnungen: 0 Dauer von 1 query: 00:09:10 */

Na zumindest das funktioniert schon mal...

Das sagt mir doch eigentlich jetzt aus, das sich in der Liste mit ca. 15.000 Pfandartikel, sich 132 Artikel befinden, die mit den Artikeln in meiner Pfandliste identisch sind.
Gut 131 ist ja nun keine große Zahl, ich glaub ich lass das hier alles und suche mir die passende HAN dazu raus und trage das handisch ein. ^^
Übrigens verblüffend, er hat knap 10 Minuten gebraucht um mir dieses Ergebniss zu liefern.
Dann weiß ich ja auch warum das mit der ganzen Liste so lange dauert, vermutlich müsste ich einfach nur nen Tag oder so warten, bis er mir dann ein Ergebniss anzeigt. :D

EDIT: Oh sehe gerade das es ja 131 Warnungen sind. Hmmm also keine Übereinstimmungen...was sagt mir das nun ?
 
Ähnliche Themen
Titel Forum Antworten Datum
Update 1.9.6.1 weitere Verkaufskanäle fehler bei Abgleich JTL-Wawi 1.9 1
Neu [Entwarnung] ACHTUNG: JTL Shop 5.3.3 | Nach Update des JTL PayPal Commerce Plugins kein Backend mehr verfügbar (FATAL ERROR) Installation / Updates von JTL-Shop 2
Neu ++ Fehler beim update von 1.55.5.3 auf version 1.8.11.0 ++ Installation von JTL-Wawi 8
Neu Alte Blogbeiträge sind nach Update nicht abrufbar JTL-Shop - Fehler und Bugs 0
Neu Nach update auf 5.4 kein Login mehr möglich JTL-Shop - Fehler und Bugs 2
Neu Update JTL Wawi von 1.0.0.0 auf 1.8.10.0 Installation von JTL-Wawi 8
Fatal-Error im Adminbereich nach Update - Shop läuft Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu JTL2Datev ist defekt bei mir seit dem Update von 30.10.2024 User helfen Usern - Fragen zu JTL-Wawi 6
Neu Warnung: Update auf Shop 5.4 Installation / Updates von JTL-Shop 39
Neu Nach Update auf 5.4 klappt einiges nicht mehr ! Installation / Updates von JTL-Shop 9
Neu Update auf 5.4.0 schlägt fehl Installation / Updates von JTL-Shop 4
Nach Update auf 1.9 alle Drucker verschwunden JTL-Wawi 1.9 6
Neu Fehlermeldung nach Shop-Update Installation / Updates von JTL-Shop 2
Update von 1.6.47.2 auf 1.9.5.3 (Registrierung, usw.) JTL-Wawi 1.9 1
Fehler bei Update von 1.5.55.8 auf 1.7.15.6 ( Unbehandelte Ausnahme #7110FFD83C0136E0 vom Typ JTL.Database.SqlUpdater.UpdateException) JTL-Wawi 1.7 0
JTL Wawi Update 1.8.12.4 auf 1.9.5.2 nicht möglich JTL-Wawi 1.9 4
Neu WMS APP Sprachausgabe funktioniert nach Android Update nicht mehr JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Update Wawi von 1.0.11 auf 1.9 Installation von JTL-Wawi 7
Neu Update von 5.1.5 auf 5.3.3 Installation / Updates von JTL-Shop 2
Neu Problem mit Scroll-Link nach Update auf Shop-Version 5.3.3 Technische Fragen zu Plugins und Templates 5
Wann kommt neues Update 1.9.4.7 JTL-Wawi 1.9 5
Neu WMS Mobile langsam seit Android Update User helfen Usern 4
Neu Update auf 1.9 - wo sind die Kommentarfelder des Artikels geblieben? Eigene Übersichten in der JTL-Wawi 1
Neu Nach Update von PayPal Checkout wird PayPal Zahlungsart entfernt Plugins für JTL-Shop 4
update von 1.3.21.1 auf Version 1.8.12.2 JTL-Wawi 1.8 6
Neu PayPal Checkout Update auf 1.5.1 nicht möglich Betrieb / Pflege von JTL-Shop 2
Neu PayPal Checkout Update Plugins für JTL-Shop 12
Neu Probleme beim Update von 5.2.4 auf 5.3.3 Installation / Updates von JTL-Shop 6
Neu Fatal error nach Shop-Update im Frontend JTL-Shop - Fehler und Bugs 8
Fehler beim Update des Mandaten easybusiness JTL-Wawi 1.9 2
Neu Fehler bei Update: "SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'emails' already exists" Installation / Updates von JTL-Shop 4
Nach Update auf 1.9 / Export Rechnungskorrekturen Zeile Ust doppelt JTL-Wawi 1.9 8
Sql Abfrage VK Preise pro Kundengruppe für Grafana JTL-Wawi 1.8 9
Neu SQL Query zum Bilder löschen Arbeitsabläufe in JTL-Wawi 3
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 2
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu DB: kPlattform eines Auftrages ändern (SQL) - Zwecks Lagerplatzreservierung User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen