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
425
38
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
425
38
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
425
38
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
425
38
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
425
38
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
425
38
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
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Beantwortet Update von 1.11.5 auf 2.0 bleibt hängen JTL-Wawi 2.0 0
Seit Update keine zweite POS-Anbindung mehr möglich JTL-Wawi 2.0 8
Update 1.9.8.0 auf 1.11.7.0 sofort Meldung "Not Responding" JTL-Wawi 1.11 2
Neu Problem nach Update auf Shop 5.6.1 - Impressum JTL-Shop - Fehler und Bugs 2
Seit umzug auf neuen Server und vorherigem update auf 2.0, startet worker nicht... JTL-Wawi 2.0 4
Shop Apotheke Bestellungen seit Update als „nicht bezahlt“ – Versand blockiert JTL-Wawi 2.0 6
Neu Strukturierte Daten vom Typ "Produkt" werden nach Update auf JTL Shop 5.6.1 nur fehlerhaft erkannt JTL-Shop - Fehler und Bugs 3
Warnung vor Update? JTL-Wawi 1.11 20
Neu nach Update nicht alle Rechnungen mehr an Amazon Amazon-Anbindung - Fehler und Bugs 0
Update auf 1.11.7 JTL-Wawi 1.11 4
Update von 1.11.6 auf 1.11.7: JTL Worker verbindet nicht mehr mit Datenbank (WaWi schon) JTL-Wawi 1.11 1
Neu OPC friert beim speichern von Änderungen ein nach JTL-Shop Update von Version 5.1.5 auf 5.6.1 JTL-Shop - Fehler und Bugs 0
Neu von JTL-Wawi-Version 1.10.16.0 ist kein Update...möglich Installation von JTL-Wawi 2
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 9
Neu POS-Server startet nicht mehr nach WaWi-update auf Version 1.11.6.0 JTL-POS - Fehler und Bugs 1
Neu Update auf 1.11.6 mittlerweile sinnvoll User helfen Usern - Fragen zu JTL-Wawi 0
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Neu Update von Wawi 1.3 auf Wawi 1.8 JTL-Wawi 1.6 1
Neu Karussell gehen auf der Startseite nach Update auf 5.6.1 nicht mehr Betrieb / Pflege von JTL-Shop 8
Neu wnm Hinweisfenster - Update von 1.1.7 auf 1.1.8 funktioniert nicht Plugins für JTL-Shop 7
Update von 1.9.6.5 auf die 1.11.5 problemlos möglich? JTL-Wawi 1.11 7
Neu JLT Shop Update 6.1 von 5.5.3 - Fehlgeschlagen Installation / Updates von JTL-Shop 5
Neu Fehler beim Update auf 1.11.5 - Ungültiger Objektname "dbo.tUpdateMigration User helfen Usern - Fragen zu JTL-Wawi 0
Neu 503 Service Unavailable bei Payrexx Webhook nach Plugin-Update - wer hat das auch? Plugins für JTL-Shop 0
DHL-Leitcodierungsdaten nach Wawi-Update nicht mehr vorhanden JTL-Wawi 1.11 0
Neu Fehler bei der Anmeldung nach Update auf 1.11.5 Installation von JTL-Wawi 11
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
seit Update zu viele Versandbestätigungen JTL-Wawi 1.11 0
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 2
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 41
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 29
Neu Abfrage Pakete nach Gewicht, Menge und durchschnittliches Gewicht Eigene Übersichten in der JTL-Wawi 0
USt-IdNr.: Abfrage funkitoniert nicht mehr. JTL-Wawi 1.11 8
Neu DB Abfrage in Rechnung User helfen Usern - Fragen zu JTL-Wawi 9

Ähnliche Themen