Hallo allerseits,
ich habe folgendes Problem:
In einer Datenbank mit zwei Spalten und ca. 300000 Zeilen, stehen in der ersten Spalte Benutzernamen und in der zweiten Spalte Profile, die der Nutzer besitzt, also z.B.
MaxM | Profil A
MaxM | Profil B
MaxM | Profil C
MonikaB | Profil B
Monika B | Profil C
Monika B | Profil D
HeinzF | Profil A
HeinzF | Profil B
...
Ich möchte jetzt ermitteln, welche Profilkombinationen häufig auftreten, und mir die Anzahl ausgeben lassen.
Also anhand obigem Beispiel: Profil B und Profil C = 3; Profil A und Profil B = 2...
Hat jemand eine Idee, wie ich das in Access oder in Excel lösen könnte?
Eine Pivottabelle kommt auf grund der hohen Anzahl der verschiedenen Profile schon mal nicht in Frage.
Danke für eure Tipps!
Hallo!
Mit Access ist das kein Problem.
SELECT Tabelle1.[Profil], Count(Tabelle1.[Benutzername]) AS AnzahlvonBenutzername
FROM Tabelle1
GROUP BY Tabelle1.[Profil];
Gruß
Dorian
Hallo,
ich denke, es soll die Anzahl der Kombinationen ermittelt werden. Dies erscheint mir nicht ganz so trivial.
Hierbei ist ja auch die Anzahl der möglichem Kombinationen wichtig. Mit ProfilA bis ProfilD wären ja 6 Kombinationen möglich.
Mal ein Lösungsentwurf für die 1. drei Kombinationsmöglichkeiten:
select BenutzerName,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilB' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AB,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilC' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AC,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilD' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AD
from Tabelle
group by BenutzerName
order by BenutzerName;
ist bei einem Benutzer die Kombination enthalten, ergibt sich aus der Abfrage 1 ansonsten 0
Wenn du diese so benötigst, musst du um die weiteren Kombinationen erweitern und anschließend die Summe der einzelnen Kombinationen berechnen! Teste es doch einfach einmal
Vielleicht geht's auch irgendwie einfacher 8)
Gruß Oma
Hallo,
danke erst mal für eure Tipps!
Zitat von: oma am Mai 19, 2010, 16:28:46
select BenutzerName,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilB' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AB,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilC' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AC,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilD' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AD
from Tabelle
group by BenutzerName
order by BenutzerName;
Um es so zu lösen gibt es leider zu viele Profile :'(
Hallo,
anbei ein Versuch per selbstverknüpfter Abfrage/Tabelle.
Vorausgesetzt im Beispiel habe ich, dass nur nach einer Zweierkombination gefragt wird.
Harald
[Anhang gelöscht durch Administrator]
Hallo shamrock,
würde mich über Deine Rückmeldung freuen, wie Du Dein Problem gelöst hast.
Harald
Guten Morgen Harald,
danke für Deinen Tipp, war bisher der sinnvollste.
Gelöst habe ich das Problem bisher gar nicht, möglicherweise muss ich - auch wegen der großen Datenmenge - mal einen Experten drüber schauen lassen.