Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all articles
Browse latest Browse all 1772

SSAS Hierarchie mit n-m Verknüpfung

$
0
0

Hallo,
ich habe ein SSAS Projekt (SQL Server 2008R2)
Ich habe Mitarbeiter, eine Gruppierung dieser Mitarbeiter und eine n-m Tabelle für die Zuordnung der Mitarbeiter zu der Gruppierung.
Zusätzlich habe ich eine Faktentabelle mit Arbeitszeiten.

Tabelle Mitarbeiter
IDMitarbeiter, MitarbeiterName

Tabelle Gruppierung
IDGruppierung, Gruppenname, IdParent

Tabelle Zuordnung
IdGruppierung, IdMitarbeiter

Tabelle Stundensatz
IDStundensatz, IdMitarbeiter, Arbeitszeit

Nun will ich auswerten können, welche Gruppen von Mitarbeitern wieviel Arbeitszeit für etwas verbraucht haben.
Ein Mitarbeiter kann in verschiedenen Gruppen vorhanden sein.
Je Gruppe sollen alle Mitarbeiter berechnet werden. Wenn jedoch ein Mitarbeiter in verschiedenen Gruppen vorhanden ist, soll in der entsprechenden Obergruppe dieser Mitarbeiter nur einmal berechnet werden.
Ich will eine Hierarchie, in der ich die Gruppen bis zum Mitarbeiter erweitern kann. Je Gruppe und je Mitarbeiter soll die entsprechende Arbeitszeit angezeigt werden.

Ich habe es schon hinbekommen, dass ich die Gruppen anzeigen kann.
Ich habe es auch schon hinbekommen, dass ich die Mitarbeiter anzeigen kann.
Jedoch habe ich leider noch keine Lösung, dass ich die Gruppen UND die Mitarbeiter in einer Hierarchie (einer Dimension) angezeigt bekomme.

Hat jemand einen Ansatz dafür?

Thomas

Anbei das SQL Server Script

USE M2MDB;
GO
CREATE TABLE Mitarbeiter
(
  IDMitarbeiter int PRIMARY KEY,
  MitarbeiterName varchar(50),
);
 GO
 CREATE TABLE Gruppierung
(
  IDGruppierung int PRIMARY KEY,
  Gruppenname varchar(50),
  IdParent int,
);
GO
CREATE TABLE Zuordnung
(
  IdGruppierung int,
  IdMitarbeiter int,
  CONSTRAINT Zuordnung_pk PRIMARY KEY (IdGruppierung, IdMitarbeiter),
  CONSTRAINT FK_Mitarbeiter
      FOREIGN KEY (IDMitarbeiter) REFERENCES Mitarbeiter (IDMitarbeiter),
  CONSTRAINT FK_Zuordnung
      FOREIGN KEY (IdGruppierung) REFERENCES Gruppierung (IdGruppierung),
);
GO
CREATE TABLE Stundensatz
(
  IDStundensatz int PRIMARY KEY,
  IdMitarbeiter int,
  Arbeitszeit int,
  CONSTRAINT FK_Stundensatz
      FOREIGN KEY (IDMitarbeiter) REFERENCES Mitarbeiter (IDMitarbeiter),
);
GO
INSERT INTO dbo.Mitarbeiter
VALUES ('1', 'Meier'), ('2', 'Müller'), ('3', 'Huber');
 
GO
 
INSERT INTO dbo.Gruppierung
 
VALUES ('1', 'Obergruppe','0'), ('2', 'Untergruppe1','1'), ('3', 'Untergruppe2','1');
 
GO
 
INSERT INTO dbo.Zuordnung
 
VALUES ('2', '1'), ('2', '2'), ('3', '1'), ('3', '3');
 
GO
 
INSERT INTO dbo.Stundensatz
 
VALUES ('1', '1','10'), ('2', '2','20'), ('3', '3','30') ,('4', '1','100'), ('5', '2','200'), ('6', '3','300');
 
GO


Viewing all articles
Browse latest Browse all 1772


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>