Patrick.Karre Geschrieben 27. März 2008 Teilen Geschrieben 27. März 2008 Hallo Forum, ich habe folgendes Problem: Ich habe Kundendaten in denen steht in einem Feld eine Anzahl wie oft etwas verschickt werden soll. Solange die Zahl 1 da steht soll die Adresse nur einmal angezeigt werden. Wenn aber die Zahl 2 da steht soll die Adresse zweimal untereinander angezeigt werden. Ich habe keine Idee, wie ich das mit einem SELECT-Statement hinbekommen könnte, hat jemand von euch eine Idee? Beste Grüße aus Gießen Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jan Jansen Geschrieben 27. März 2008 Teilen Geschrieben 27. März 2008 2 Vorschläge: 1. Benutz ein rekursives SQL 2. Wenn du den Wertebereich von Anzahl sehr sicher einschränken kannst: SELECT * FROM a WHERE anzahl>0 UNION SELECT * FROM a WHERE anzahl>1 UNION SELECT * FROM a WHERE anzahl>2 usw. wobei die 1. Lösung solider ist, auch wenn es etwas Einarbeitung kostet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 27. März 2008 Autor Teilen Geschrieben 27. März 2008 Wie genau geht die 1. Lösung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jan Jansen Geschrieben 27. März 2008 Teilen Geschrieben 27. März 2008 Google mal nach "rekursion sql vater kind", der 2. Link Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jan Jansen Geschrieben 28. März 2008 Teilen Geschrieben 28. März 2008 Hier ist ein SQL das ungefähr das macht was du suchst. Ersetze Stufe durch Anzahl und bau deine benötigten Felder ein. In Daten werden einfach nur 3 Testsätze erzeugt (gibt es in db2 eine spezielle Tabelle für so was?) WITH daten(id, werte, stufe) AS (SELECT DISTINCT 1, 111, 4 FROM sysibm.views UNION SELECT DISTINCT 2, 222, 1 FROM sysibm.views UNION SELECT DISTINCT 3, 333, 2 FROM sysibm.views) , rek (id, werte, stufe) AS ( SELECT daten.id , daten.werte , daten.stufe FROM daten UNION ALL SELECT kind.id , kind.werte , vater.stufe-1 FROM rek vater , daten kind WHERE vater.id=kind.id AND vater.stufe>1 ) SELECT id, werte FROM rek Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 28. März 2008 Autor Teilen Geschrieben 28. März 2008 Hallo, danke für Deine Hilfe. Ich habe es mit UNION ALL gelöst. Klappt Super. Beste Grüße aus Gießen Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.