SQL Abfrage von PLZ

adaptare01

Aktives Mitglied
24. Februar 2016
21
0
Hallo,

wir haben viele Warensendungen zu versenden und arbeiten daher mit der MailAlliance und zusaetzlich noch der Deutschen Post.

Ich habe eine PLZ Tabelle in die Datenbank importiert, die eigentlich nur eine Spalte PLZ und eine andere mit zwei Zahlen enthält welche die PartnerNummer der MailAlliance ist.
Nun muss ich halt eine Abfrage machen in der ich Abfrage, dass wenn es diese PLZ in der importierten Tabelle gibt,er mir die Partnernummer zurückgibt.

Habe leider wenig SQL Erfahrung, muss es aber ja so direkt in der Datenbank lösen.

Mein Ansatz zur Zeit:

JTL_DirectQuery ("SELECT citipostPLZ.Partnernummer FROM citipostPLZ WHERE citipostPLZ.PLZ='Vorgang.Auftrag.Lieferadresse.PLZ'")

Die Tabelle ist citipostPLZ mit den zwei Spalten PLZ und Partnernummer. Es sind also nur die PLZ enthalten, welche von der MailAlliance bedient werden können.

Alles andere muss dann mir der Deutschen Post raus :)

Stenigt mich nicht......
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
AW: SQL Abfrage von PLZ

Und, hast Du auch ein Problem oder eine Frage an uns oder wolltest Du uns nur Deinen Ansatz vorstellen... ;)
 

adaptare01

Aktives Mitglied
24. Februar 2016
21
0
AW: SQL Abfrage von PLZ

Hallo gutberle,

ja die Frage ist in der Verzweifelung dort geblieben wo sie herumgeistert.

Mein Ansatz funktioniert überhaupt nicht. Es sollte ja eigentlich eine Kleinigkeit sein, aber wenn man seit Tagen des Lesens und Rumprobierens nicht weiter kommt......

Frage:
Kann mir einer, gerne auch an einem anderen Beispiel diese JTL_DirectQuery Anweisung kurz erläutern oder mir sachdienliche Hinweise geben, die mir zur Lösung des Problems weiterhelfen können?
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
AW: SQL Abfrage von PLZ

Die Frage ist erst mal, (sorry falls ich was überlesen habe) wo willst du die Abfrage haben?

Im Workflow? In der Emailvorlage? In den Ausdrucken?
Weil die Funktion JTL_DirectQuery dient ausschließlich dazu, in seinen Vorlagen Informationen aus der Datenbank darzustellen. Nicht mehr, nicht weniger.

Wenn du genau das willst, haben wir ja schonmal die Richtige Funktion, dann zur nächsten Baustelle, dem SQL

Ich nehme daher einfach mal nur das SQL zwischen den "

SELECT citipostPLZ.Partnernummer FROM citipostPLZ WHERE citipostPLZ.PLZ='Vorgang.Auftrag.Lieferadresse.PLZ '

Auf den ersten blick okay, auf dem zweiten nicht, weil das würde genau so wie es hier steht zur DB geschickt werden, ohne das die PLZ ersetzt wird.
Es müsste eigentlich so aussehen

SELECT citipostPLZ.Partnernummer FROM citipostPLZ WHERE citipostPLZ.PLZ='" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'

Sprich mit Doppel " und der Verkettung durch +
Darüber hinaus muss am ende natürlich vor dem Schließendem einfachen ' kein Leerzeichen enthalten sein.

Vielleicht noch als Schutz vorne direkt nach dem Select eine TOP 1 mit einbauen, damit du wirklich nur einen, und zwar den ersten Datensatz ausgibst. P.S. der Qualifier im Forum von Tabellennamen bei den Spalten brauchst du nicht, wenn die Spalte eh Eindeutig ist. Also sollte das Statement dann so aussehen

SELECT TOP 1 Partnernummer FROM citipostPLZ WHERE PLZ='" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'

Wenn wir das ganze noch was schön machen

SELECT TOP 1 [Partnernummer] FROM [dbo].[citipostPLZ] WHERE [PLZ]='" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'

Dann sollt das auch so klappen.
 

adaptare01

Aktives Mitglied
24. Februar 2016
21
0
AW: SQL Abfrage von PLZ

Hallo Marc!

Das hat wunderbar geklappt. Vielen Dank fuer die schnelle Hilfe!
Jetzt muss ich das Ganze nur noch in lustigen Cond Abfragen basteln und dann ist es wohl perfekt.
Um den Lerneffekt fuer mich noch zu erhoehen, warum ist der letzte Ausdruck

'" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'

zwischen den beiden + Zeichen?
Das erste koennte ich mir intuitiv noch erklaeren, aber das zweite......

Darf man eigentlich so ungeniert in der JTL Datenbank reinwerkeln?
Hatte irgendwo gelesen, dass man sonst keinen Anspruch auf Support hat, wenn man da was dran geaendert hat..
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
AW: SQL Abfrage von PLZ

'" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'

Dazu würde ich mir den ganzen ausdruck angucken


JTL_DirectQuery ("SELECT TOP 1 [Partnernummer] FROM [dbo].[citipostPLZ] WHERE [PLZ]='" + Vorgang.Auftrag.Lieferadresse.PLZ+ "'")

Beim ersten " fangen wir ja eine Zeichenkette an, alles was danach kommt wird ja auch "glaub in Rot dargestellt" weil es ein String ist, bei Vorgang.... handelt es sich um eine Variable, diese wollen wir ausgewertet haben, daher wird diese dann mit + Verknüpft
Auch string interpolation genannt. Danach sagen wir das wir den String nochmal um ein ' erweitern und schließen am ende kommt dann ein String wie z.B.

SELECT TOP 1 [Partnernummer] FROM [dbo].[citipostPLZ] WHERE [PLZ]='40210'

raus.

Darf man eigentlich so ungeniert in der JTL Datenbank reinwerkeln?
Hatte irgendwo gelesen, dass man sonst keinen Anspruch auf Support hat, wenn man da was dran geaendert hat..
Das ist ein Komplexeres Thema, Grundsätzlich ja, man darf es nicht. Es gibt gewisse Geschichten welche aber Toleriert werden, z.B. eigene Funktionen, eigene Stored Procedures, Eigene Tabellen, Eigene Views. Sowas ist okay.
Was nicht okay ist, Tabellen von JTL z.B. um Spalten zu erweitern. Trigger hinzuzufügen oder direkt Logik von JTL zu manipulieren.

Grundsätzlich ist sowas wie eine String Interpolation bei SQL Statements eine Sicherheits Lücke. Und Potenziel kann sowas zum Verlust von Daten führen. JTL hat dort aber ein paar Schutzmechanismen eingebaut, sodass nicht wirklich was Kritisches passieren kann.
 

adaptare01

Aktives Mitglied
24. Februar 2016
21
0
AW: SQL Abfrage von PLZ

Besten Dank Marc!

Sehr gute Erklaerung die mich auch dazu veranlasst hat ein SQL fuer Dummies Buch zu kaufen. Hatte irgendwann mal im Studium ein Semester Datenbanken, aber da ist nicht viel haengen gelieben.

Eigentlich graut es mir auch davor direkt in der Datenbank herumzufummeln, wenn man nicht wirklich den Durchblick hat.

Koennte man solche Abfragen auch irgendwie anders loesen, ohne eine zusaetzliche Tabelle in der Datenbank?

Zur Zeit haben wir ein PHP Script fuer diese Abfrage, welches sich aber in JTL nicht verwenden laesst.
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
AW: SQL Abfrage von PLZ

Je nach menge der Datensätze bestimmt. Aber über die Tabelle auf jeden fall eleganter. Wir haben bei unseren Projekten ja auch unzählige zusätzliche Tabellen in der DB, ist eigentlich kein Problem
 
Ähnliche Themen
Titel Forum Antworten Datum
In Diskussion Kundengruppe nach Umsatz (SQL in Workflow) JTL-Workflows - Ideen, Lob und Kritik 5
Neu Dedicated SQL Server am Limit Merkmale Betrieb / Pflege von JTL-Shop 1
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 2
Neu MS Server und MS SQL Installation von JTL-Wawi 6
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Neu Track & Trace - Verfolgung von Retoure JTL-Track&Trace - Ideen, Lob und Kritik 12
Neu von Version zu Version unzufriedener... Arbeitsabläufe in JTL-Wawi 3
In Wawi 2.0.6 Kommentar 1 und Kommentar 2 für Lagerbestände von Kindartikeln desselben Vaterartikels nicht mehr über Vaterartikel pflegbar JTL-Wawi 2.0 4
Neu Biete: Automatisierung von Artikelanlage, Datenpflege und Schnittstellen Dienstleistung, Jobs und Ähnliches 2
Extern angehängte pdf Rechnungen und GS von Otto wie speichern ? JTL-Wawi 1.11 0
Neu Nach Update von POS ist alles groß dargestellt Sunmi t2 Allgemeine Fragen zu JTL-POS 8
Neu Seit heute früh kein Start von JTL-Wawi möglich - Datenbank nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 7
Neu Fehler beim öffnen von JTL Hub JTL-ShippingLabels - Fehler und Bugs 2
Neu Ausgabe von Artikelbeschreibung: Stückliste + Artikel-Bild JTL-Wawi 2.0 5
Neu GLS in Shipping 2.0: Neue ShipIT-Anbindung & zentrale Tarife jetzt live – Migration von der alten WebAPI bis zum 30. September News, Events und Umfragen 5
Weiter gehts....Kein Anlegen von Artikel mit Fotos mehr möglich, seit Update auf 2.06 JTL-Wawi 2.0 14
Neu css Einstellungen Paypal Plugin von JTL JTL-Shop - Fehler und Bugs 1
Neu Anzeige von Rabatt obwohl nicht eingestellt. Allgemeine Fragen zu JTL-Shop 1
Wichtig JTL-ShippingLabels 1.0: Support-Ende GLS/DPD und Migration von JTL-Start-Kunden nach dem 30. September News, Events und Umfragen 14
Neu Amazonpay Fehler nach Anbindung von Datev - bitte helfen Schnittstellen Import / Export 0
Lexware Office von Kunden meldet Arithmetik Fehler in Zugferd 2 XRechnung JTL-Wawi 1.11 9
Neu Wie bedenklich wäre es, den Vorgangsstatus von Aufträgen über einen direkten Datenbankbefehl zu aktualisieren? User helfen Usern - Fragen zu JTL-Wawi 5
Neu Auszahlungen von Amazon prüfen Arbeitsabläufe in JTL-Wawi 2
Neu KI Kennzeichnung von Bildern Betrieb / Pflege von JTL-Shop 9
Die Suche von Stücklistenartikeln/Bundles funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Update von 1.8.12.4 auf 2.0.5 - Kostenfreie Version - Registrierung erforderlich? User helfen Usern - Fragen zu JTL-Wawi 1
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Installieren von Plugins schlägt fehl "Unable to authenticate using a password." Plugins für JTL-Shop 3
Neu "alte" Bankverbindung beim Duplizieren von älteren Aufträgen User helfen Usern - Fragen zu JTL-Wawi 3
nach Update von 5.3 auf 5.7 neue Position im Warenkorb "Gebühr" die auch in den Auftrag übernommen werden Einrichtung JTL-Shop5 2
Neu E-Rechnungen werden von DATEV nicht akzeptiert JTL-Wawi 2.0 1
In Diskussion Tool für Abrechnung von Fulfillment Dienstleistungen Arbeitsabläufe im Fulfillment Network 0
Neu JTL-Shop - Wechsel von Test zum Livebetrieb - was beachten ? Installation / Updates von JTL-Shop 2
Neu Unterschiedliche Abnahmeintervalle von Variationskombinationen in der Warenkorbmatrix Templates für JTL-Shop 0
Angebliche externe Aufträge "für Rechnungserstellung freigeben" und Rechnungen erstellen. Gibt es dazu eine akzeptable Erklärung von JTL? JTL-Wawi 1.11 1
Lohnt sich das Update von 1.11.6 auf 2.0.4 aktuell? JTL-Wawi 2.0 3
Neu Abrechnung / Auslieferung von Aufträgen mit Gutschriftverfahren Arbeitsabläufe in JTL-Wawi 3
Erfahrungswerte Update von 1.8.12.2 auf 1.11.10 JTL-Wawi 1.11 4
Import von Aufträgen via tXMLBestellImport Tabelle seit Update sehr träge/langsam JTL-Wawi 1.11 3
Neu Update von Modul DHL 3.0 aud 4.0 - Versandlabels lassen sich nicht erstellen JTL-ShippingLabels - Fehler und Bugs 17
Neu Umzug von sehr alter JTL Wawi Version auf neuen PC User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen