Ich habe eine Tabelle mit folgenden Feldern „ID“ (autowert) „Kunden_ID“ (alphanummerisch), „Bestell_ID“ (nummerisch), „Bestellwert“ (nummerisch), „Rabatt“ (nummerisch).
Die Kunden_ID kann in der Tabelle beliebig oft vorkommen (bis zu 50 mal). Nun sollen alle Datensätze durchsucht werden und Inhalte der Datensätze mit gleicher Kunden_ID sollen nebeneinander in eine neue Tabelle geschrieben werden (Aufbau: Kunden_ID, Beslell_ID1, Bestellwert1, Rabatt1, Beslell_ID2, Bestellwert2, Rabatt2, Beslell_ID3, Bestellwert3, Rabatt3 usw.
zu solchen Vorhaben kann ich nur sagen,es am Besten ganz bleiben zu lassen.
Eine Tabelle mit „horizontaler“ Auflistung inhaltlich sinngemäß derselben Feldern zu erstellen, ist nicht zielführend und führt gegen eine Betonmauer.
Beschäftige Dich, bevor Du irgendwie weitermachst und im Urwald landest, mit den Regeln der Tabellennormalisierung (einfach mal googlen) und erstelle eine neue DB (vermutlich sogar auch das grundlegende Konzept) unter Berücksichtigung dieser Regeln.
das geht nicht mit Datenbankmitteln, sondern nur mit Programmierung: Sätze einlesen, entsprechende Felder zusammenpacken, zwischenspeichern, umfummeln, drucken. Also ganz simple sequentielle Verarbeitung.
Relationale Datenbanken funktionieren nur, wenn die Daten normalisiert sind, also als 1. Voraussetzung keinerlei Wiederholung von Feldern enthalten. Deshalb stellt auch kein DBMS Werkzeuge zur Verfügung, die Deine Wünsche erfüllen könnten.
Leider kann ich es nicht bleiben lassen, weil wir die Daten in dieser Form in ein externes Programm einspielen müssen. Bisher machen wir das „Nebeneinanderschreiben“ jeden Monat händisch.
Es geht wirklich nur um den Datenexport in dieses andere Programm.
innerhalb der eigenen DB benötige ich die Daten auch nicht in der Form. Ich brauche sie so, damit die Daten in ein anderes Programm eingespielt werden können, wo sie derzeit noch jeden Monat händisch erfasst werden.
Genau das ist das Proplem, dass ich die sequentielle Abarbeitung nicht programmieren kann. Ich habs schon mit Schleifen probiert, so dass er jeden Datensatz durchläuft. Aber wie sage ich dem Programm, dass es die Daten in ein neues Feld schreiben soll?
Wie Ralf es schon angedeutet hat, braucht es dazu ein gewisses Maß an Programmierung:
Mittels nach KundenID sortiertem Recordset jeweils die DS eines Kunden durchlaufen und bei jedem Durchgang mittels zweitem Recordset die einzelnen Beträge in das entspr. Feld der Zieltabelle schreiben. Das „entspr. Feld“ könnte man mit Hilfe einer Zähler-Variablen (Index), die bei jeden Durchlauf innerhalb einer Kundengruppe passend erhöht wird, bestimmen.