Eigene Übersicht SQL

Net Cube

Aktives Mitglied
9. September 2015
68
3
Hallo,

ich versuche gerade unter Bestellungen eine eigene Übersicht zu erstellen.
Ich habe eigene Felder in den Artikeln in den ich mehrere Lagerorte habe.
Diese sind als Textfelder angelegt in denen der Bestand im Lagerort eingetragen werden kann.

Nun möchte ich das in den Bestellungen unter Eigene Übersichten anzuzeigen.

Mein SQL Code:

SELECT [Beschaffung].[lvBestellPositionen].[cArtNr] AS Artikelnummer, [Beschaffung].[lvBestellPositionen].[cName] AS Artikelname, [DbeS].[vArtikelAttributEigeneFelder].[cName] AS Name, [DbeS].[vArtikelAttributEigeneFelder].[nWertInt] AS Wert
FROM [Beschaffung].[lvBestellPositionen], [Beschaffung].[lvBestellung], [DbeS].[vArtikelAttributEigeneFelder]
WHERE [kBestellung] = @Key

Zum teil funktioniert es wenn ich den Teil mit den Lagerort raus mache.
Lass ich diesen drinnen hängt JTL sich auf. Da ich ich vermute, dass dann alle Einträge aufgelistet werden und nich nur die von der eigentlichen Bestellung

Ich möchte, dass mir alle Lagerorte angezeigt werden und dazu die Zahl welche hinterlegt worden ist.

Danke schon mal
 

Net Cube

Aktives Mitglied
9. September 2015
68
3
SELECT [Beschaffung].[lvBestellPositionen].[cArtNr] AS Artikelnummer, [Beschaffung].[lvBestellPositionen].[cName] AS Artikelname
FROM [Beschaffung].[lvBestellPositionen]
WHERE [kBestellung] = @Key

Das funktioniert soweit
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.858
560
...
Mein SQL Code:

SELECT [Beschaffung].[lvBestellPositionen].[cArtNr] AS Artikelnummer, [Beschaffung].[lvBestellPositionen].[cName] AS Artikelname, [DbeS].[vArtikelAttributEigeneFelder].[cName] AS Name, [DbeS].[vArtikelAttributEigeneFelder].[nWertInt] AS Wert
FROM [Beschaffung].[lvBestellPositionen], [Beschaffung].[lvBestellung], [DbeS].[vArtikelAttributEigeneFelder]
WHERE [kBestellung] = @Key
...
Du musst der Datenbank schon sagen WIE die beiden Tabellen verknüpft werden sollen, sonst werden ja alles mit allem verbunden...
Tipp: wenn man eigene Abfragen erstellt, dann am besten immer auch den Ausführungsplan anzeigen lassen.
 

Net Cube

Aktives Mitglied
9. September 2015
68
3
Ich habe das gerade umgeschrieben aber nun bekomme ich einfach unter "Name" alle eigenen Felder nach und nach aufgelistet

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
aaf.cName AS Name,
aaf.nWertInt AS Wert
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel
WHERE b.kBestellung = @Key


Hatte ja gehoft, dass mir dann der der Passende ginterlegte Eintrag angezeigt wird.
Die ID vom eigenen Feld ist die 131 und das muss uch da auch noch mit abfragen.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.858
560
...
Die ID vom eigenen Feld ist die 131 und das muss uch da auch noch mit abfragen.
Dann mach diese Bedingung einfach mit in den Join.
Ich habe keine 1.6 deshalb kan ich das nachkucken, wo diese ID steht, aber vermutlich findest du es in vArtikelAttributEigeneFelder

dann könnte man es so machen:

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
aaf.cName AS Name,
aaf.nWertInt AS Wert
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel AND kAttribut=131
WHERE b.kBestellung = @Key

Prüfe aber auch mal, ob du statt der Views auch Tabellen verwenden könntest.
 

Net Cube

Aktives Mitglied
9. September 2015
68
3
SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
attrspra.cWertVarchar AS Lager1,
attrsprb.cWertVarchar AS Lager2,
attrsprc.cWertVarchar AS Lager3,
attrsprd.cWertVarchar AS Lager4
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel
JOIN tArtikel a ON a.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attra ON attra.kArtikel = a.kArtikel AND attra.kAttribut = '131'
LEFT JOIN tArtikelAttributSprache attrspra ON attrspra.kArtikelAttribut = attra.kArtikelAttribut
LEFT JOIN tArtikel b1 ON b1.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attrb ON attrb.kArtikel = b1.kArtikel AND attrb.kAttribut = '132'
LEFT JOIN tArtikelAttributSprache attrsprb ON attrsprb.kArtikelAttribut = attrb.kArtikelAttribut
LEFT JOIN tArtikel c1 ON c1.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attrc ON attrc.kArtikel = c1.kArtikel AND attrc.kAttribut = '133'
LEFT JOIN tArtikelAttributSprache attrsprc ON attrsprc.kArtikelAttribut = attrc.kArtikelAttribut
LEFT JOIN tArtikelAttribut attrd ON attrd.kArtikel = a.kArtikel AND attrd.kAttribut = '173'
LEFT JOIN tArtikelAttributSprache attrsprd ON attrsprd.kArtikelAttribut = attrd.kArtikelAttribut
WHERE b.kBestellung = @Key


Das funktioniert nun.
Nur komischerweise werden mir die Artikel doppelt und dreifach ausgegeben.
 

Net Cube

Aktives Mitglied
9. September 2015
68
3
Dann mach diese Bedingung einfach mit in den Join.
Ich habe keine 1.6 deshalb kan ich das nachkucken, wo diese ID steht, aber vermutlich findest du es in vArtikelAttributEigeneFelder

dann könnte man es so machen:

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
aaf.cName AS Name,
aaf.nWertInt AS Wert
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel AND kAttribut=131
WHERE b.kBestellung = @Key

Prüfe aber auch mal, ob du statt der Views auch Tabellen verwenden könntest.
meinst du so?

SELECT DISTINCT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
attrspra.column_name_value AS Lager1,
attrsprb.column_name_value AS Lager2,
attrsprc.column_name_value AS Lager3,
attrsprd.column_name_value AS Lager4
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.858
560
Nein

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
attrspra.cWertVarchar AS Lager1,
attrsprb.cWertVarchar AS Lager2,
attrsprc.cWertVarchar AS Lager3,
attrsprd.cWertVarchar AS Lager4
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel
JOIN tArtikel a ON a.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attra ON attra.kArtikel = a.kArtikel AND attra.kAttribut = '131'
LEFT JOIN tArtikelAttributSprache attrspra ON attrspra.kArtikelAttribut = attra.kArtikelAttribut
LEFT JOIN tArtikel b1 ON b1.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attrb ON attrb.kArtikel = b1.kArtikel AND attrb.kAttribut = '132'
LEFT JOIN tArtikelAttributSprache attrsprb ON attrsprb.kArtikelAttribut = attrb.kArtikelAttribut
LEFT JOIN tArtikel c1 ON c1.kArtikel = bp.kArtikel
LEFT JOIN tArtikelAttribut attrc ON attrc.kArtikel = c1.kArtikel AND attrc.kAttribut = '133'
LEFT JOIN tArtikelAttributSprache attrsprc ON attrsprc.kArtikelAttribut = attrc.kArtikelAttribut
LEFT JOIN tArtikelAttribut attrd ON attrd.kArtikel = a.kArtikel AND attrd.kAttribut = '173'
LEFT JOIN tArtikelAttributSprache attrsprd ON attrsprd.kArtikelAttribut = attrd.kArtikelAttribut
WHERE b.kBestellung = @Key


Das funktioniert nun.
Nur komischerweise werden mir die Artikel doppelt und dreifach ausgegeben.
So komisch ist das gar nicht, wenn du mal durchdenkst, welche Ergebnismengen du immer wieder miteinander verknüpfst ;)

Wie gesagt: da ich keinen Zugriff auf 1.6 habe, kann ich zu dem tArtikelAttribut und tArtikelattributSprache gar nicht soviel sagen, aber ausgehend von deinem ursprünglichen musst du nur ergänzen:

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
aaf.cName AS Name,
aaf.nWertInt AS Wert
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel AND (kAttribut=131 OR kAttribut=132 OR kAttribut=173)
WHERE b.kBestellung = @key

Abhängig davon, wie oft du diese Abfrage ausführst, würde ich dann aber schon die lvBestellPositionen, lvBestellung und vArtikelAttributEigeneFelder genauer anschauen und prüfen, ob es Sinn macht, diese Objekte als Grundlage für den Select zu nehmen.
Aber da kann dir sicher jemand, der die 1.6 benutzt ganueres dazu sagen.
 

Net Cube

Aktives Mitglied
9. September 2015
68
3
Nein


So komisch ist das gar nicht, wenn du mal durchdenkst, welche Ergebnismengen du immer wieder miteinander verknüpfst ;)

Wie gesagt: da ich keinen Zugriff auf 1.6 habe, kann ich zu dem tArtikelAttribut und tArtikelattributSprache gar nicht soviel sagen, aber ausgehend von deinem ursprünglichen musst du nur ergänzen:

SELECT bp.cArtNr AS Artikelnummer,
bp.cName AS Artikelname,
aaf.cName AS Name,
aaf.nWertInt AS Wert
FROM Beschaffung.lvBestellPositionen bp
JOIN Beschaffung.lvBestellung b ON bp.kBestellung = b.kBestellung
JOIN DbeS.vArtikelAttributEigeneFelder aaf ON bp.kArtikel = aaf.kArtikel AND (kAttribut=131 OR kAttribut=132 OR kAttribut=173)
WHERE b.kBestellung = @key

Abhängig davon, wie oft du diese Abfrage ausführst, würde ich dann aber schon die lvBestellPositionen, lvBestellung und vArtikelAttributEigeneFelder genauer anschauen und prüfen, ob es Sinn macht, diese Objekte als Grundlage für den Select zu nehmen.
Aber da kann dir sicher jemand, der die 1.6 benutzt ganueres dazu sagen.
Ich benötige aber die Ausgabe der Lager als Tabellenkopf

Artikelnummer | Artikelname | Lager 1 | Lager 2 | Lager 3 | Lager 4

Es kommt auch vor, dass etwas in Lager 1 und in Lager 2 liegt oder in Lager 1 und in Lager 4

Daher benötige ich das.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.858
560
Du hast vier Lager? Und dann speichert du im Artikel in einem eigenen Feld ab in welchem Lager er liegt??
Wieso legst du nicht mehrere Lager in der Wawi an?
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Eigene Umsatzsteuer-ID fehlt oft in Aufträgen JTL-Wawi - Fehler und Bugs 3
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4
Ameise: Eigene Exporte umbenennen? JTL-Wawi 1.8 6
Neu eigene Felder Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 5
Neu Händlerartikelnummer druch eigene im Auftrag ersetzen User helfen Usern - Fragen zu JTL-Wawi 0
Artikel Eigene Felder kommen nur beim ersten Shopabgleich in den JTL-Shop JTL-Wawi 1.11 2
Ameisen-Vorlagen Attribute und Eigene Felder lassen sich nicht speichern JTL-Wawi 1.11 2
Neu wie Wawi eigene Felder (Kunden) an Shop DB übertragen? User helfen Usern - Fragen zu JTL-Wawi 3
JTL Wawi App eigene Statistiken erscheinen nicht JTL-Wawi App 0
Neu Anzeige Kategorie Pfad in der Übersicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 3
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
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
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
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen