Hallo,
Hi,
Abgelegt sind diese in einer Tabelle mit 2 Spalten: Die NutzerID und jeweils ein Kriterium. D.h., wer alle 83 Punkte erfüllt hat auch 83 Zeilen in der Tabelle (Nein, das Design stammt nicht von mir).
sehr anständig von Dir, dass Du Dich nicht mit fremden Federn schmücken willst. Andere hätten diese glückliche Situation vielleicht ausgenutzt.
Um jetzt einen Nutzer rauszusuchen, der viele Kriterien erfüllt,
Also wie viele Datensätze in der Tabelle hat? Ein COUNT(*), ein GROUP BY, ein ORDER BY, und fertig ist die Laube.
Leider nicht ganz so trivial: Welche Nutzer erfüllen Kriterium 1,10,60,61,62,...?
SELECT questanscode FROM Activity_domains where (refcode = '1.1' [...]
Welche Bedeutung hat refcode? Was steht in den anderen Spalten? Wo ist die NutzerID? Gibt es Verknüpfungen zu anderen Tabellen, die von Relevanz sind?
Ooops, sorry. der refcode ist jeweils das Kriterium; questanscode ist die NutzerID. Letzteres Feld ist mit einer Tabelle verknüpft, die die Nutzerdaten enthält.
Da ich an der DB nichts ändern kann/darf
Warum solltest Du auch? :-)
In den nächsten Jahren wird sehr sicher an den Kriterien nicht rumgeschraubt. Daher hätte man u.U. das Design dahingehend ändern könne, dass für jedes Kriterium eine Ja/Nein-Spalte existiert. Hätte die Abfrage enorm vereinfacht.
meine Frage: Hat jemand eine Idee, wie man es besser lösen könnte?
Mir ist das DB-Layout nicht genügend bekannt, die Inhalte auch nur bedingt, und leider vergaßt Du zu erwähnen, wie Dein Wunsch-Resultset aussieht. Mit diesen Informationen könnte sicherlich jemand noch spezifischer antworten.
Betriebsblind :-(
Wie gesagt, das Layout drum herum spielt eigentlich keine Rolle, zumal die Tabelle halt auch nur diese beiden Spalten hat.
Es soll in einem Formular per Checkbox ausgewählt werden, was alles gesucht ist (quasi als Mindestanforderung). Ausgespuckt werden soll eine Liste mit Nutzern, die diese Kriterien (siehe oben: refcode) erfüllen. Und das soll eben notfalls auch für alle 83 Kriterien funktionieren und nicht nur für 50.
Sorry für die reichlich mißverständliche Formulierung meinerseits, falls Du noch eine Idee auf Lager hast...
Danke schonmal
Thomas