Quantcast
Channel: SQL Server Analysis Services Forum
Viewing all articles
Browse latest Browse all 2472

How can i write this in MDX (Cateogory to SubCategoy ratio) ?

$
0
0

i Have 3 Dimension and 1 fact table , table definition with sample data as follows

/*
drop table FactStatusCount
drop table DimProductCategory
drop table DimProductSubCategory
drop table DimStatus
*/

CREATE TABLE dbo.DimProductCategory
(
 ProductCategoryID INT PRIMARY KEY,
 ProductCategory NVARCHAR(255)
)

CREATE TABLE dbo.DimProductSubCategory
(
 ProductSubCategoryID INT PRIMARY KEY,
 ProductSubCategory NVARCHAR(255)
)

CREATE TABLE dbo.DimStatus
(
 StatusID SMALLINT PRIMARY KEY,
 Status VARCHAR(50)
)

CREATE TABLE dbo.FactStatusCount
(
 ProductCategoryID int references dbo.DimProductCategory(ProductCategoryID),
 ProductSubCategoryID int references dbo.DimProductSubCategory (ProductSubCategoryID),
 StatusID smallint references dbo.DimStatus(StatusID),
 StatusCount int
)

-- Sample Data
INSERT INTO dbo.DimProductCategory  SELECT 1,'Product 1'
INSERT INTO dbo.DimProductCategory  SELECT 2,'Product 2'
INSERT INTO dbo.DimProductCategory  SELECT 3,'Product 3'

INSERT INTO dbo.DimProductSubCategory  SELECT 1,'Product sub 1'
INSERT INTO dbo.DimProductSubCategory  SELECT 2,'Product sub 2'
INSERT INTO dbo.DimProductSubCategory  SELECT 3,'Product sub 3'

INSERT INTO dbo.DimProductSubCategory  SELECT 4,'Product sub 4'
INSERT INTO dbo.DimProductSubCategory  SELECT 5,'Product sub 5'
INSERT INTO dbo.DimProductSubCategory  SELECT 6,'Product sub 6'


INSERT INTO dbo.DimProductSubCategory  SELECT 7,'Product sub 7'
INSERT INTO dbo.DimProductSubCategory  SELECT 8,'Product sub 8'

insert into  dbo.DimStatus values (1,'Pass'), (2,'Fail'),(3,'N/A')

insert into dbo.FactStatusCount(ProductCategoryID,ProductSubCategoryID,StatusID,StatusCount)
values (1,1,1,5 ),(1,1,2,5 ),(1,1,3,8 ),
(1,2,1,4),(1,2,2,4 ),
(1,3,2,4),(1,3,3,3 ),
(2,4,1,8 ),(2,4,2,7),
(2,5,1,6),(2,5,2,4 ),(2,5,3,8 ),
(2,6,2,3),(2,6,3,3 ),
(3,7,1,6),(3,7,2,4 ),(3,7,3,8 ),
(3,8,2,3),(3,8,3,3 )


-- I want to write the MDX Query to get the output as Like  below T-SQL

select P.ProductCategory,St.Status ,Sum(StatusCount) StatusCount,
 Convert( Decimal(9,2),Sum(StatusCount))/ (
 select Sum(StatusCount) StatusCount
 from dbo.FactStatusCount F1
  WHERE F1.ProductCategoryID = F.ProductCategoryID
 Group by F1.ProductCategoryID
 ) * 100 as ProductCount
from dbo.FactStatusCount F
 inner join dbo.DimProductCategory p on p.ProductCategoryID = f.ProductCategoryID
 inner join dbo.DimProductSubCategory S on S.ProductSubCategoryID = f.ProductSubCategoryID
 inner join dbo.DimStatus St on St.StatusID = F.StatusID
Group by P.ProductCategory,F.ProductCategoryID,St.Status
Order by ProductCategory

 Thanks in Advance -  Sarika



Viewing all articles
Browse latest Browse all 2472

Trending Articles



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