Tabelle in mehrere Tabellen gleichmässig aufteilen

J

JCB

Mitglied
Hallo,

ich habe eine Tabelle die in einem Feld unterschiedliche Werte von Mitarbeiteranzahlen hat. Ich möchte diese Tabelle nun in 4 gleichgroße Teile aufteilen, wobei aber jede dieser Zieltabellen die ungefähr gleiche Menge an unterschiedlichen Mitarbeiteranzahlen hat. Ich hatte mir überlegt, ob ich das mit der Random Funktion hinbekomme. Jedoch finde ich das zu unsauber. Dann gäbe es noch die Möglichkeit die Anzahl der Datensätze pro MA-Anzahl zu gruppieren und dann die gewichtung dieser Zahl bei der Tabellenerstellung einfliessen zu lassen. Ist aber sehr aufwändig.

Gibt es dafür noch eine andere Möglichkeit?

Bin für jeden Hinweis dankbar,

Gruß,

Jens
 
Irgendwie weiss ich nicht wirklich was du vor hast.
Kannste das bitte mal ein wenig genauer erklären, und vielleicht noch n UML-Diagramm dazupacken wie es jetzt aussieht, und wie es nach umbau aussehen soll?

Lg, sim4000.
 
Hallo sim4000,

ich versuchs. UML Diagramm geht nicht so einfach. Die Aufgabe ist aber:

Ich habe eine Tabelle mit 1200 Datensätzen, diese soll in 4 kleine Tabellen (mit der gleichen Struktur wie die Quelltabelle also "Select * from source_tbl;") zu je 300 Datensätzen geteilt werden. Dabei sollen aber die aus der Quelltabelle zu selektierenden 300 Datensätze immer dem gleichen Mischungsverhältnis des Feldes Mitarbeiteranzahl entsprechen. Somit fällt eine Sortierung dieses Feldes aus. Ich dachte es gäbe irgendeine Funtion oder Hilfe, die Datensätze bei jedem der 4 Requests um eine neue Tabelle zu erstellen, die das korrekte Mischungsverhältnis setzt.


Danke, daß du dich meiner annimmst :)

Gruß,

JB
 
Bist du sicher das du das so machen willst? Und nicht einfach nur zB. jedem Datensatz eine 1-4 zuordnen? Erklär mal wofür das gut sein soll.

Ansonsten, wenn es wirklich so sein soll, dann kannst du zB. einen Zähler bereit halten und von dem vor dem Einfügen mod(4) nehmen, so weisst du in welche Tabelle der Datensatz landen soll.

Gruß
D.
 
@hazelnoot nein das ist es nicht, das würde bedeuten, daß ich die Struktur der Daten relational aufteilen möchte. Ist aber nicht Ziel.

@madfool Mein Kunde möchte aus meiner Potentialliste an Kundendaten jeweils 4 Listen haben, die er dann an 4 unterschiedliche Mitarbeiter senden möchte. Diese sollten nach möglichkeit den gleichen Anteil an unterschiedlich gearteten Kunden haben. Soll heissen, wenn z.B das MasterFile 300 Kundendaten mit MA-Anzahlen um die Hundert hat, sollen diese 300 dann auch gleichmässig auf die 4 aufgeteilt werden.

Aber ich denke, ich werde nach der Anzahl sortieren und dann diesem mod(4) einsetzen. das sollte dann reichen.

Danke für eure Mühe,

Jens
 
Na siehst du, das meine ich doch. Dazu musst du die Daten doch nicht in vier verschiedenen Tabellen abspeichern, sondern nur jedem Datensatz eine Zahl von 1-4 zuordnen, danach kannst du diese vier Listen dann doch ziehen.

Gruß
D.
 
Hallo sim4000,

ich versuchs. UML Diagramm geht nicht so einfach. Die Aufgabe ist aber:

Ich habe eine Tabelle mit 1200 Datensätzen, diese soll in 4 kleine Tabellen (mit der gleichen Struktur wie die Quelltabelle also "Select * from source_tbl;") zu je 300 Datensätzen geteilt werden. Dabei sollen aber die aus der Quelltabelle zu selektierenden 300 Datensätze immer dem gleichen Mischungsverhältnis des Feldes Mitarbeiteranzahl entsprechen. Somit fällt eine Sortierung dieses Feldes aus. Ich dachte es gäbe irgendeine Funtion oder Hilfe, die Datensätze bei jedem der 4 Requests um eine neue Tabelle zu erstellen, die das korrekte Mischungsverhältnis setzt.


Danke, daß du dich meiner annimmst :)

Gruß,

JB

Tatsächlich halte ich das für eine Frage des Algorithmus, der die Abfragen macht.

Stellt sich die Frage, warum die Aufteilung in vier Tabellen; was unterscheidet die Mitglider der vier Tabbellen? Hat man diese Frage beantwortet, ergibt sich eindeutig ein zusätzliches Feld mit

  1. entweder einem SET von vier Werten, über die man dann die jeweils Dreihundert auseinanderhalten kann
  2. oder ein Fremdschlüssel, falls es erweiterbar sein soll

Mehrere Tabellen ein und der selben Struktur sind redundant und sollten sich durch ein zusätzliches Feld ersetzen lassen.
 
Naja vieleicht hatte ich mich dann auch etwas komisch ausgedrückt.:think: Der Output sollten nicht 4 redundante Tabellen sein, sondern halt Listen die man den Mitarbeitern in unterschiedlichen Niederlassungen gibt. Das war aber nicht das Problem sondern die gleichmässige Verteilung der Datensätze. Ich habe nun folgendes gemacht:

Tabelle sortiert nach MA Anzahl ASC
Danach einen Zähler eingefügt
Danach ein neues Feld mit [Zähler] MOD 4 gefüllt

und dann dieses neue Feld zum Extrahieren benutzt.

Danke Euch allen nochmal für die Hilfe. Manchmal muss man auf alles ein wenig rumdenken und anderen zuhören, um auf die Lösung zu kommen.

Danke

JB
 
Naja vieleicht hatte ich mich dann auch etwas komisch ausgedrückt.:think: Der Output sollten nicht 4 redundante Tabellen sein, sondern halt Listen die man den Mitarbeitern in unterschiedlichen Niederlassungen gibt.

Hmm, COUNT ausgeben lassen, durch 4 teilen, SELECTS limitieren und das dann an die Niederlassungen ausgeben?
 
Dito. Lösung hat im Programm zu erfolgen. Es gibt keinen Grund bei willkürlich aufgeteilten Datenmengen da mehrere Tabellen zu nehmen, schon gar nicht bei der Zahl. Viel sinniger das im abrufenden Programm zu machen.
 
Zurück
Oben