SQL Abfrage für Etiketten, Extra Zeilen bei Zahl größer 1
Hallo,
bei folgender Tabelle:
Artikelnr/Stückzahl/Beschreibung
möchte ich eine SQL Abfrage wobei jede Position so oft kommt wie oft die Stückzahl vorhanden ist.
Grundproblem ist zB die Etikettierung von Artikeln.
Wenn ich den Artikel 3311 5x im lager habe benötige ich 5 Etiketten, er steht aber nur 1x in der Datenbank...
Danke schon jetzt für die Lösung,
es dürfte glaub ich relativ einfach sein, aber ich steh momentan auf der Leitung!
bei folgender Tabelle:
Artikelnr/Stückzahl/Beschreibung
möchte ich eine SQL Abfrage wobei jede Position so oft kommt wie oft die Stückzahl vorhanden ist.
Grundproblem ist zB die Etikettierung von Artikeln.
Wenn ich den Artikel 3311 5x im lager habe benötige ich 5 Etiketten, er steht aber nur 1x in der Datenbank...
Danke schon jetzt für die Lösung,
es dürfte glaub ich relativ einfach sein, aber ich steh momentan auf der Leitung!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 217364
Url: https://administrator.de/forum/sql-abfrage-fuer-etiketten-extra-zeilen-bei-zahl-groesser-1-217364.html
Ausgedruckt am: 18.04.2025 um 19:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo FlorianW,
mit deiner SQL-Abfrage bekommst du doch die Anzahl die zu drucken ist, schon im Feld "Stückzahl" mitgeliefert. Diese kannst du dann benutzen um entsprechende Anzahl an Etiketten zu drucken(FOR-Schleife). Denke das ist eher eine Frage wie du die Daten weiterverarbeitest. Dazu hast du uns hier aber zu wenig Informationen geliefert Programmiersprache, etc.
Grüße Uwe
mit deiner SQL-Abfrage bekommst du doch die Anzahl die zu drucken ist, schon im Feld "Stückzahl" mitgeliefert. Diese kannst du dann benutzen um entsprechende Anzahl an Etiketten zu drucken(FOR-Schleife). Denke das ist eher eine Frage wie du die Daten weiterverarbeitest. Dazu hast du uns hier aber zu wenig Informationen geliefert Programmiersprache, etc.
Grüße Uwe
Hallo Florian,
du könntest es so lösen:
Mit Hilfe einer procedure liest du die Anzahl und die Artikelnummer aus der Artikeltabelle aus und fügt in einer for Schleife so
oft die Artikelnr in eine Hilfstabelle ein wie die Anzahl des Artikels Schleifen zulässt.
Dann verwendest du die Hilfstabelle um deine Etiketten zu drucken.
grüße vom it-frosch
du könntest es so lösen:
Mit Hilfe einer procedure liest du die Anzahl und die Artikelnummer aus der Artikeltabelle aus und fügt in einer for Schleife so
oft die Artikelnr in eine Hilfstabelle ein wie die Anzahl des Artikels Schleifen zulässt.
Dann verwendest du die Hilfstabelle um deine Etiketten zu drucken.
grüße vom it-frosch
Moin FlorianW,
je nach vorhandenem Datenbank-System geht es auch ohne temporäre Hilfstabelle bzw. mit einem SQL-Statement.
Aber dazu müsste wir wirklich minimal wissen, ob du mit Oracle oder mySQL oder gar mit etwas wie Access unterwegs bist.
Und wenn es unter ungünstigen Umständen ohne Procedure/ohne Programmlogik gemacht werden muss und nur ein Schmalspur-SQL-Umfang zur Verfügung steht, dann brauchst du eine Hilfstabelle.
Da du ja einen Feldnamen "Stückzahl" angegeben hast, gehe ich mal vom worst case M$-ACCESS aus.
Also dann:
Danach kannst du hiermit bis zu 99 Etiketten (Stückzahl=99) drucken bzw diese Anzahl 99 Datensätze dafür erzeugen
Ausgabe:
Lässt sich mit der vorhandenen Tabelle Hilfstab auch auf 999 oder 9999999 Etiketten erweitern ohne viel Aufwand.
Grüße
Biber
je nach vorhandenem Datenbank-System geht es auch ohne temporäre Hilfstabelle bzw. mit einem SQL-Statement.
Aber dazu müsste wir wirklich minimal wissen, ob du mit Oracle oder mySQL oder gar mit etwas wie Access unterwegs bist.
Und wenn es unter ungünstigen Umständen ohne Procedure/ohne Programmlogik gemacht werden muss und nur ein Schmalspur-SQL-Umfang zur Verfügung steht, dann brauchst du eine Hilfstabelle.
Da du ja einen Feldnamen "Stückzahl" angegeben hast, gehe ich mal vom worst case M$-ACCESS aus.
Also dann:
- Lege dir eine Hilfstabelle namens "Hilfstab" mit einem einzigen Feld"Dummyzahl", Typ Zahl an.
- Fülle 10 Datensätze mit den Zahlen 0 bis 9
Danach kannst du hiermit bis zu 99 Etiketten (Stückzahl=99) drucken bzw diese Anzahl 99 Datensätze dafür erzeugen
SELECT a.ArtikelNr, a.Beschreibung
, a.Stückzahl
, Str( h.Anzahl+1) & " von " & str(a.Stückzahl) as Lfdnr
FROM Artikel a,
(select Zehner+Einer as Anzahl
from (
Select hE.Dummyzahl as Einer
, 10* hZ.Dummyzahl as Zehner
from Hilfstab hE, Hilfstab hZ)
) h
Where a.Stückzahl >= h.Anzahl+1
order by a.ArtikelNr, h.Anzahl
Ausgabe:
ArtikelNr Beschreibung Stückzahl Lfdnr
2213 Artikel3314 4 1 von 4
2213 Artikel3314 4 2 von 4
2213 Artikel3314 4 3 von 4
2213 Artikel3314 4 4 von 4
3311 Artikel 3311 3 1 von 3
3311 Artikel 3311 3 2 von 3
3311 Artikel 3311 3 3 von 3
4711 Artikel 4711 17 1 von 17
4711 Artikel 4711 17 2 von 17
4711 Artikel 4711 17 3 von 17
4711 Artikel 4711 17 4 von 17
4711 Artikel 4711 17 5 von 17
4711 Artikel 4711 17 6 von 17
4711 Artikel 4711 17 7 von 17
4711 Artikel 4711 17 8 von 17
4711 Artikel 4711 17 9 von 17
4711 Artikel 4711 17 10 von 17
4711 Artikel 4711 17 11 von 17
4711 Artikel 4711 17 12 von 17
4711 Artikel 4711 17 13 von 17
4711 Artikel 4711 17 14 von 17
4711 Artikel 4711 17 15 von 17
4711 Artikel 4711 17 16 von 17
4711 Artikel 4711 17 17 von 17
Lässt sich mit der vorhandenen Tabelle Hilfstab auch auf 999 oder 9999999 Etiketten erweitern ohne viel Aufwand.
Grüße
Biber