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.292
401
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.910
210
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.910
210
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.910
210
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
Bestseller SQL-Abfrage JTL-Wawi 1.9 1
SQL-Abfrage – Stückliste-Artikel ausblenden, nur einzelne Positionen anzeigen JTL-Wawi 1.9 3
SQL-Abfrage für eigene Übersicht im Verkauf – Aufträge zu Angeboten prüfen JTL-Wawi 1.9 2
Neu Suche SQL Abfrage für Hersteller die keinem Artikel mehr zugeordnet sind. User helfen Usern - Fragen zu JTL-Wawi 6
Neu SQL Abfrage für offene Aufträge über Ameise User helfen Usern - Fragen zu JTL-Wawi 5
Neu Server Hardware für eigenes Wawi / SQL Hosting Installation von JTL-Wawi 3
Neu Rechnungskorrekturen per SQL Vorgangsstatus setzen JTL-Workflows - Ideen, Lob und Kritik 1
SQL Service Update JTL-Wawi 1.9 13
Neu keine verbindung zu eazybusiness / SQL Datenbank Installation von JTL-Wawi 1
Über SQL Abfragen, Preise eines SCX Angebotes ändern kaufland.de - Anbindung (SCX) 6
Neu Auftragsview per Ameise oder SQL in CSV exportieren User helfen Usern - Fragen zu JTL-Wawi 13
MS SQL von JTL an N8N anbinden JTL-Wawi 1.9 16
Neu Suche Kenner der MS SQL Datenbanken und JTL-WaWi vorzugsweise Raum Aachen Dienstleistung, Jobs und Ähnliches 1
Mehrere SQL Server JTL-Wawi 1.9 6
Neu Shop Komplettabgleich nicht möglich, Globale Daten verstopft SQL Tabelle tGlobalsQueue komplett JTL-Wawi - Fehler und Bugs 0
Neu Keine erneute Consent-Abfrage nachdem Plugin hinzugefügt wurde Plugins für JTL-Shop 2
Neu Datenbank Abfrage/Update Kundengruppe Checkbox bei Sonderpreisen JTL Ameise - Eigene Exporte 1
In Diskussion Workflow für die Abfrage des noch offenen Kreditlimits JTL-Workflows - Ideen, Lob und Kritik 2
Neu JTL POS und Sump Zuordnung von Belegen Allgemeine Fragen zu JTL-POS 0
Neu Zugriff auf Rechnungsnummer innerhalb von JTL Shop Technische Fragen zu Plugins und Templates 0
Neu Kein Import von Lagerbeständen ins WMS Lager möglich JTL-Ameise - Fehler und Bugs 1
Neu Gratisgeschenke ab Bestellwert nach Eingabe von Coupon Betrieb / Pflege von JTL-Shop 0
Nach Update von 1.9.4.5 auf 1.10.10.3: Nicht alle Länder einer Steuerzone zugewiesen JTL-Wawi 1.10 1
Fehler beim Mailen von Rechnungen JTL-Wawi 1.10 7
Neu Nach Update von 1.9.8 auf 1.10.10.3 - Vererben auf Kinder nicht mehr möglich JTL-Wawi - Fehler und Bugs 2
Wichtig - nach Update von 1.9.x auf 1.10.x - Lizenzen aktualisieren JTL-Wawi 1.10 2
Neu JTL Ameise Kein Import von Kundendatenmehr JTL-Ameise - Fehler und Bugs 3
Neu Das Stable Release von JTL-Wawi 1.10 ist da! Releaseforum 0
Neu Artikelliste / Artikelverwaltung -> bedingte Formatierung in Abhängigkeit von eigenen Feldern JTL-Wawi - Ideen, Lob und Kritik 0
Neu Wie kann man in den Vorlagen die Mengenanzeige von "STK" in "Menge" oder "x" ändern ! User helfen Usern - Fragen zu JTL-Wawi 2
Neu Simples CRM als Ergänzung von JTL Arbeitsabläufe in JTL-Wawi 0
Neu Ameise Export von Eigene Felder (Kunde) User helfen Usern - Fragen zu JTL-Wawi 3
Neu Kunden Ust.ID in Rechnungen von EU Kunden wird nicht angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Brauche Hilfe Workflow Multichannel Rechnungserstellung nach Versand von Amazon JTL-Workflows - Ideen, Lob und Kritik 0
Kein Abgleich von Lizenzen JTL-Wawi 1.9 1
Neu Kostenfreies Tool zum Entfernen von Hintergründen User helfen Usern 0
Neu Probleme beim Abgleich von JTL WAWI und JTL Shop JTL-Wawi - Fehler und Bugs 7
Neu Fehler beim Zuweisen von Kunden-Zahlungen bei Auftragssplittung JTL-Wawi - Fehler und Bugs 1
Problem bei der Anzeige von Kindartikel-Titeln bei Vaterartikeln (JTL-Shop & eBay) JTL-Wawi 1.9 0
Neu Umstellung von Stapelversand auf Einzelversand – was wird benötigt? User helfen Usern - Fragen zu JTL-Wawi 12
Neu Löschen von Merkmalen Betrieb / Pflege von JTL-Shop 3
Neu Übermittlung von Transparency-Seriennummern an Amazon mit JTL-Wawi Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Ameise: Import von Artikelmerkmalen JTL-Ameise - Ideen, Lob und Kritik 4
Neu Wechsel von JTL Shop 5 zu Shopware 6 – Wer hat Erfahrung mit kompletter Datenmigration (Kundenlogins, Bestellungen, Gutscheine etc.)? Shopware-Connector 3
Neu Uncaught TypeError nach Update von 5.1.5 auf 5.41 Installation / Updates von JTL-Shop 2
Neu Export von Artikelnummern, in denen ein Artikel als Komponente enthalten ist mittels JTL-Ameise Arbeitsabläufe in JTL-Wawi 2
Bearbeitungsdauer von Aufträgen JTL-Wawi 1.9 0
Letzte Lieferung von Lieferadressen für Außendienstmitarbeiter JTL-Wawi 1.9 1
Ameise Texte übernehmen von JTL-Wawi 1.9 1
Neu Erstellung von Druckdokumenten DE / EN Starten mit JTL: Projektabwicklung & Migration 2

Ähnliche Themen