• 《BI项目笔记》报到信息分析Cube


    数据源设置:

    数据处理逻辑:

    --处理丢失外键关系数据
    SELECT  *
    FROM    T_ReportLeafGrade
    WHERE   FSubFID NOT IN ( SELECT FID
                             FROM   T_RaceLeafReport )
                             
    DELETE  FROM T_ReportLeafGrade
    WHERE   FSubFID NOT IN ( SELECT FID
                             FROM   T_RaceLeafReport )                      
                             
    --处理供应商关系
    SELECT  *
    FROM    T_RaceLeafReport
    WHERE   V_Customer NOT IN ( SELECT  C_CustCode
                                FROM    T_ProviderInfo )
                                
    --更改字段类型                            
    ALTER TABLE T_RaceLeafReport ALTER COLUMN V_Customer INT 
    
    --设置主键为NOT NULL
    ALTER TABLE T_ProviderInfo ALTER COLUMN C_CustCode INT NOT NULL
    
    --设置主键
    ALTER TABLE T_ProviderInfo
    ADD CONSTRAINT PK_CustCode PRIMARY KEY(C_CustCode)
    
    --承运单位
    SELECT  *
    FROM    T_RaceLeafReport
    WHERE   I_CarryID NOT IN ( SELECT   I_CarryID
                               FROM     T_RaceCarryUnitInfo )
    
    --运输工具
    SELECT  *
    FROM    T_RaceLeafReport
    WHERE   I_ConveyanceID NOT IN ( SELECT  I_ConveyanceID
                                    FROM    T_RaceConveyance )
                                    
    --收购类型                                
    SELECT  *
    FROM    T_RaceLeafReport
    WHERE   I_PurchaseTypeID NOT IN ( SELECT    I_PurchaseID
                                      FROM      T_PurchaseType )        
                                      
    --加工类型
    --新增I_TLProcTypeCode字段
    ALTER TABLE T_RaceLeafReport ADD I_TLProcTypeCode INT NULL
    UPDATE  T_RaceLeafReport
    SET     T_RaceLeafReport.I_TLProcTypeCode = T_TLProcType.I_TLProcTypeCode
    FROM    T_TLProcType
    WHERE   T_RaceLeafReport.V_TLProcType = T_TLProcType.V_TLProcType
    
    DELETE  FROM T_RaceLeafReport
    WHERE   I_TLProcTypeCode IS NULL
    
    --提交标志删除标记
    DELETE  FROM T_RaceLeafReport
    WHERE   V_IsSubmit = '未提交'
    
    DELETE  FROM T_RaceLeafReport
    WHERE   I_DeleteFlag IN ( 1, 2 )
    
    --新增业务日期BusinessDate字段
    ALTER TABLE T_RaceLeafReport ADD BusinessDate INT NULL
    --将datetime转为int
    UPDATE  T_RaceLeafReport
    SET     BusinessDate = CAST(REPLACE(CONVERT(CHAR(10), D_ReportDate, 120), '-',
                                        '') AS INT)                                    
                                        
    --产地处理
    DELETE  FROM T_ReportLeafGrade
    WHERE   I_ShapeCode NOT IN ( SELECT I_OriginID
                                 FROM   T_Origin )

    需要抽取的维度表:

    序号

    表名

    说明

    备注

    1

    T_ProviderInfo

    供货商

    2

    T_RaceCarryUnitInfo

    承运单位

    3

    T_RaceConveyance

    运输工具

    4

    T_GBGradeCode

    烟叶级别

    5

    T_Distinction

    烟叶等级

    6

    T_Origin

    产地

    7

    T_PurchaseType

    收购类型

    8

    T_TLProcType

    加工类型

    需要抽取的事实表:

    序号

    表名

    说明

    备注

    1

    T_RaceLeafReport

    报到主表

    2

    T_ReportLeafGrade

    报到子表

    主要指标:
    I_PieceCount 件数_合计
    I_Weight 重量_合计

    项目结构:

    浏览效果:

    客户端效果:

  • 相关阅读:
    vim 查找选中文本_Chris!_百度空间
    export.py
    string.clear() liuyy的专栏 博客频道 CSDN.NET
    python判断有中文字符的方法
    vi技巧 ArduousBonze的专栏 博客频道 CSDN.NET
    cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)
    XML遍历(LINQ TO XML的魅力)
    当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层
    EXCEL中如果输入一个数,然后自动让它乘以某个常数(第一列乘6,第二列乘4)
    面向对象~程序应该具有可维护性,代码可复用性,可扩展性和灵活性
  • 原文地址:https://www.cnblogs.com/Bobby0322/p/4095704.html
Copyright © 2020-2023  润新知