Patrick.Karre Geschrieben 27. März 2008 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
Jan Jansen Geschrieben 27. März 2008 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
Patrick.Karre Geschrieben 27. März 2008 Autor Geschrieben 27. März 2008 Wie genau geht die 1. Lösung?
Jan Jansen Geschrieben 27. März 2008 Geschrieben 27. März 2008 Google mal nach "rekursion sql vater kind", der 2. Link
Jan Jansen Geschrieben 28. März 2008 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
Patrick.Karre Geschrieben 28. März 2008 Autor 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden