Offen altes SQL-Skript funktioniert nicht mehr unter JTL 1.0.4.4

janswichtig

Aktives Mitglied
3. Januar 2012
14
0
An das Supportteam!

mit folgendem Skript haben wir die Auftragsnummern zu den Hinweisen je Position hinzugefügt:

Code:
---------
UPDATE tBestellPos Set cHinweis = tBestellung.cBestellNr FROM tBestellPos INNER JOIN tBestellung ON tBestellung.kBestellung = tBestellPos.tBestellung_kbestellung AND tBestellPos.cHinweis IS NULL
---------
So wird bei jeder Position, wenn der Hinweis nicht gestezt ist auf Bestellnummer gesetzt.


Das funktioniert nun nicht mehr. Bitte teilt mir mit, wie das Skript jetzt lauten muss.

Danke!
 

Stetto

Sehr aktives Mitglied
2. Juli 2009
4.811
580
AW: altes SQL-Skript funktioniert nicht mehr unter JTL 1.0.4.4

Hi, falsches Forum. Bekommst du eine Fehlermeldung? Wie äußerst sich die "Nicht Funktion"? Außerdem fehlen WHERE Einschränkungen? Ich kann mir nicht vorstellen, dass ihr jedes mal, alle Aufträge nochmal durchrödeln wollt.
Ist das ein Workaround für Dropshipping oder wofür nutzt ihr das? Dropshipping richtig verwendet, erstellt doch automatisch einen Zusammenhang zwischen Lieferantenbestellung > Lieferschein > Kundenbestellung
 

janswichtig

Aktives Mitglied
3. Januar 2012
14
0
AW: altes SQL-Skript funktioniert nicht mehr unter JTL 1.0.4.4

Hallo,

danke für die Antwort. Bin mir nicht sicher, wo dieses Thema genau hingehört.

In der Version 0.9xx haben wir diesen Skript-Befehl in der SQL 2012 Server Management Studio Konsole ausgeführt (Neue Abfrage > Ausführen). Die Auftragsnummer wurde dadurch in das Hinweisfeld von jeder Position des Auftrags hinzugefügt. Wenn wir dieses Skript in der Version 1.0xxx ausführen, bleiben die Hinweisfelder in den Positionszeilen der Aufträge leer. Keine Fehlermeldung.

Hintergrund ist folgender: ein Kunde bekommt bis mehrere Aufträge pro Monat und am Monatsende nur eine einzige Rechnung. Wenn wir die Aufträge zusammenfassen, dann gehen die Auftragsnummern verloren. Unsere Kunden möchten aber alle Positionen auf der (Sammel-)Rechnung den einzelnen Aufträgen zuordnen können, dafür brauchen wir die Auftragsnummern zusätzlich in den Hinweisen je Position.

In diesem Monat mussten wir bei knapp 5000 Positionen die Auftragsnummern manuell als Hinweis hinzufügen, weil uns keine andere Lösung eingefallen ist.

Ist es möglich, das Skript so anzupassen, dass es wieder funktioniert? das wäre eine riesen Hilfe für uns :)
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
AW: altes SQL-Skript funktioniert nicht mehr unter JTL 1.0.4.4

@janswichtig

Das ist eigentlich ganz einfach gelöst. Bis zur 0.99923 hat die Wawi bei Anlage einer Bestellposition den cHinweis mit NULL vorbelegt, ab 1.0 aber mit '', also leer. Deshalb läuft Deine Abfrage ins Leere. Es ist aber auch tatsächlich kein guter Stil und nebenbei gefährlich, UPDATE Aktionen durchzuführen, ohne den Scope mit WHERE einzugrenzen, z.B. so...
Code:
UPDATE tBestellPos Set cHinweis = tBestellung.cBestellNr FROM  tBestellPos  INNER JOIN tBestellung ON tBestellung.kBestellung =  tBestellPos.tBestellung_kbestellung WHERE tBestellPos.cHinweis=''
Aber, auch wenn ich Dir gerne helfe, ist es doch ein wenig bedenklich, dass Du das nicht selbst sofort gesehen hast, denn das hätte genau diesen Befehl gebraucht...
Code:
SELECT * FROM tBestellPos
... und nicht mehr. Da kommen Dir zwar all Deine Bestellpositionen "entgegengeflogen" und auch alle Spalten, aber Du hättest auch so sofort gesehen, dass alle neuen Bestellpositionen eben kein NULL im cHinweis Feld haben. Versteh' mich bitte nicht falsch, ich will Dich nicht kritisieren, sondern ich möchte Dich/Euch ganz im Gegenteil dazu ermuntern, mehr über SQL und damit auch mehr über DIE Datenbank zu lernen, die Ihr da gefährlicherweise interaktiv verändert...

Schau Dir doch mal im Netz das Freeware Programm HeidiSQL an. Das ist mächtig, stabil und genauso sicher oder eben unsicher im Umgang mit den Daten wie das SQL Server Management Studio, denn der Unsicherheitsfaktor ist eigentlich immer der User. HeideSQL gibt Dir aber coole Möglichkeiten, Deine Daten direkt in den Tabellen und ohne gefährliche Abfragen zu "korrigieren" und unten im Fenster werden zu allen Aktionen, die das "Rumklicken" erzeugt die SQL Statements angezeigt. Wenn Du lernen willst, hier geht's, aber wenn's um Eure produktive Datenbank geht, dann ist auch mit HeideSQL Zurückhaltung angesagt. - Und IMMER schön Backups machen...