none
CONSULTAS BÁSICAS - TABULAR MODEL RRS feed

  • Pregunta

  • Hola, llevo meses sin poder avanzar, habrá alguien me apoye con algo leve

    tengo 1 FactTable y 2 Dimensiones, de alli, quiero hacer cualquier combinación de reportes como  les muestro en la imagen

    No tengo idea de como hacerlo,

    En la imagen superior Lado izquierdo son las tablas que tengo, lado derecho lo que quiero conseguir...

    ayuda por favor.

    Les dejo un Script que genera un DW con esas tablas para ver si pudieran apoyarme.

    Estoy trabajando con un Modelo Tabular

    USE master;
    GO
    -- =======================================================================================================
    -- AUTOR:			MANUEL OMAR OLGUÍN HDEZ
    -- FECHA:			2016 - 01 - 13
    -- VERSIÓN SCRIPT:	1.0
    -- REQUERIMIENTO:	ASESORÍA
    -- DESCRIPCIÓN:		CREA UNA BASE DE DATOS DE TIPO DATA WAREHOUSE PARA UTILIZARLA COMO EJEMPLO Y
    --					SOLICITAR ASESORÍA VÍA FOROS
    --
    -- NOTA:			CÓDIGO CREADO EN SQL SERVER 2014 DEVELOPER EDITION
    -- =======================================================================================================
    
    
    
    ------------------------------------------------------------------------------- CREA BASE DE DATOS
    IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'DW_temp2') 	
    		CREATE DATABASE DW_temp2;
    GO
    
    USE DW_temp2;
    GO
    
    ------------------------------------------------------------------------------ CREA LA ESTRUCTURA 
    
    
    IF OBJECT_ID ('FactDeals')		IS NOT NULL DROP TABLE FactDeals;
    IF OBJECT_ID ('DimClientes')	IS NOT NULL DROP TABLE DimClientes;
    IF OBJECT_ID ('DimProductos')	IS NOT NULL DROP TABLE DimProductos;
    IF OBJECT_ID ('DimContactos')	IS NOT NULL DROP TABLE DimContactos;
    IF OBJECT_ID ('DimDivisas')		IS NOT NULL DROP TABLE DimDivisas;
    IF OBJECT_ID ('DimFechas')		IS NOT NULL DROP TABLE DimFechas;
    IF OBJECT_ID ('DimTipoCliente')	IS NOT NULL DROP TABLE DimTipoCliente;
    IF OBJECT_ID ('v_Deals')		IS NOT NULL DROP  VIEW  V_Deals;
    
    
    
    
    CREATE TABLE DimClientes
      (
         IdCliente		TINYINT			NOT NULL,
    	 NombreCliente	VARCHAR (30)	NOT NULL,
    	 CONSTRAINT		PK_DimClientes	PRIMARY KEY (IdCliente),
      );
    
       
    
     CREATE TABLE DimTipoCliente
      (
    	IdTipoCliente	CHAR(1)			NOT NULL CHECK (IdTipoCliente = 'A' or IdTipoCliente = 'P'),
    	TipoCliente		VARCHAR(7)		NOT NULL,
    	CONSTRAINT		PK_TipoCliente	PRIMARY KEY (IdTipoCliente),
    	CONSTRAINT		UK_TipoCliente	UNIQUE (TipoCliente),
      )
    
    
    CREATE TABLE FactDeals
     (
       IdDeal					INT							NOT NULL,
       IdCliente_Comprador		TINYINT						NOT NULL,
       IdTipoCliente_Comprador	CHAR(1)						NOT NULL,  
       IdCliente_Vendedor		TINYINT						NOT NULL,
       IdTipoCliente_Vendedor	CHAR(1)						NOT NULL,       
       CONSTRAINT				PK_FactDeals				PRIMARY KEY (IdDeal),
       CONSTRAINT				FK_Cliente_Comprador		FOREIGN KEY (IdCliente_Comprador)		REFERENCES DimClientes		(IdCliente),
       CONSTRAINT				FK_Cliente_Vendedor			FOREIGN KEY (IdCliente_Vendedor)		REFERENCES DimClientes		(IdCliente), 
       CONSTRAINT				FK_IdTipoCliente_Comprador	FOREIGN KEY (IdTipoCliente_Comprador)	REFERENCES DimTipoCliente	(IdTipoCliente),
       CONSTRAINT				FK_IdTipoCliente_Vendedor	FOREIGN KEY (IdTipoCliente_Vendedor)	REFERENCES DimTipoCliente	(IdTipoCliente),
      );
      GO
    
    
    
    
    
     INSERT INTO DimClientes VALUES
     (1,'HSBC'),
     (2,'SANTANDER'),
     (3,'BANCOMER'),
     (4,'JP MORGAN'),
     (5,'BARCLAYS'),
     (6,'VECTOR'),
     (7,'BANAMEX')
     
    
    
      INSERT INTO DimTipoCliente
      SELECT 'P', 'POSTOR' UNION ALL
      SELECT 'A', 'AGRESOR'
    
    
     INSERT INTO FactDeals VALUES
     (1,	5,'A',	2,'P'),
     (2,	5,'A',	1,'P'),	
     (3,	2,'A',	3,'P'),
     (4,	4,'P',	6,'A'),
     (5,	4,'P',	1,'A'),
     (6,	6,'A',	2,'P'),
     (7,	1,'A',	4,'P'),
     (8,	1,'P',	4,'A'),
     (9,	1,'P',	4,'A'),
     (10,	1,'A',	5,'P'),
     (11,	1,'A',	5,'P'),
     (12,	2,'P',	6,'A');
    
     ------------------------------------------------------------------------- VER LOS REGISTROS INSERTADOS
    
    
    
    
    

    Qué otros datos necesitan saber o tener?

    Gracias a cualquiera que me apoye


    saludos

    lunes, 12 de septiembre de 2016 21:17