Patrick.Karre Geschrieben 8. Mai 2007 Teilen Geschrieben 8. Mai 2007 Hallo Forum, ich habe folgende Aufgabenstellung: Ich habe zwei Tabellen. In einer stehen Adressen in einer anderen Mitarbeiter drinnen. Bei den Mitarbeitern gibt es eine Anzahl die für jeden Mitarbeiter unterschiedlich ist. Diese Anzahl gibt an, für wie viele Adressen der jeweilige Mitarbeiter zuständig sein soll. Die Adressen die einem Mitarbeiter zugeteilt werden, bekommen ein bestimmtes Flag gesetzt, die restlichen Adressen bekommen ein anderes Flag. Die Anzahl bei den Mitarbeitern wird mit einer Zahl multipliziert, die ausgerechnete Zahl soll die Anzahl der Adressen sein, die dem Mitarbeiter zugeteilt werden. Jetzt stellt sich die Frage, wie baue ich so ein SQL-Statement am besten auf. Muss ich hier mit einer Schleife arbeiten. Für Lösungsvorschläge wäre ich dankbar. Beste Grüße aus Giessen Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Joe Kinley Geschrieben 9. Mai 2007 Teilen Geschrieben 9. Mai 2007 Ich hoffe ich versteh das richtig. Du willst also eine Spalte mit einem Wert multiplizieren? Wie waere es mit UPDATE tabelle SET spalte1 = spalte1*14 (WHERE sowieso) Oder hab ich das falsch verstanden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 9. Mai 2007 Autor Teilen Geschrieben 9. Mai 2007 Das macht ein Update über alle Datensätze, ich möchte aber nur eine bestimmte Anzahl haben. Ich habe 2000 Adressen und 10 Mitarbeiter. Jeder Mitarbeiter hat eine bestimmte Anzahl die mal einen Faktor genommen wird (10 * Faktor 5 = 50 Adressen). Nur für diese gefundene Anzahl von Adressen soll ein Flag gesetzt werden, die restlichen sollen ignoriert werden. Und das für jeden Mitarbeiter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Joe Kinley Geschrieben 9. Mai 2007 Teilen Geschrieben 9. Mai 2007 Ginge es denn mit einem HAVING COUNT(*) < 50 Oder sowas? Ansonsten musst du es wohl mit einem Script machen, und einer Loop. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 9. Mai 2007 Autor Teilen Geschrieben 9. Mai 2007 Kann ich nicht mit einer SQL-Schleife arbeiten? Damit könnte ich doch jeden Mitarbeiter einzeln abfragen. Leider weiß ich nicht genau, wie ich eine Schleife auf SQL-Ebende erstelle. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Byteloser Geschrieben 9. Mai 2007 Teilen Geschrieben 9. Mai 2007 Irgendwie versetehe ich nicht, was Du brauchst. Aus meiner Vermutung hilft Dir vielleicht das weiter: UPDATE mt Set Flag = 1 FROM Mitarbeiter mt INNER JOIN (SELECT MitarbeiterID FROM Adressen GROUP BY MitarbeiterID Having Count(MitarbeiterID) * Faktor > 50) a ON mt.MitarbeiterID = a.MitarbeiterID Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 9. Mai 2007 Teilen Geschrieben 9. Mai 2007 Für Lösungsvorschläge wäre ich dankbar. Das wichtigste hast du in meinen Augen vergessen. Du sagst nur, dass am Ende eine bestimme Anzahl Adressen je einem Mitarbeiter zugeordnet werden sollen. Die alles entscheidende Frage ist hier aber, nach welcher Logik die Adressen verteilt werden sollen. Gibt es irgendwelche Auswahlkriterien? Gibt es ein Sortierkriterium und die Adressen werden dann einfach der Reihe nach vergeben? usw. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 9. Mai 2007 Autor Teilen Geschrieben 9. Mai 2007 Ich stelle meine Frage anderst: Ich habe eine Tabelle mit Adresse und in einer anderen Tabelle die Mitarbeiter zu den Adressen. Jetzt möchte ich, dass für jeden Mitarbeiter eine bestimmte Anzahl (z.b. 10) Adressen zurückgegeben werden. Wie muss das SQL-Statement aussehen. In welcher Folge die Adressen zurück gegeben werden ist vollkommen egal. Beste Grüße aus Giessen 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.