`
j2ee_chenwei
  • 浏览: 41561 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

生成时间维度表的存储过程

阅读更多
一个生成时间维度表的存储过程
create PROCEDURE [dbo].[Create_time_by_day_dimension]

    -- Add the parameters for the stored procedure here

AS

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

SET NOCOUNT ON;

begin try

drop table [time_by_day_dimension]

end try

begin catch

end catch

CREATE TABLE [dbo].[time_by_day_dimension] (

  [time_id] [int] IDENTITY (1, 1) NOT NULL ,

  [the_date] [datetime] NULL ,

  [the_day] [nvarchar] (15) NULL ,

  [the_month] [nvarchar] (15) NULL ,

  [the_year] [smallint] NULL ,

  [day_of_month] [smallint] NULL ,

  [week_of_year] [smallint] NULL ,

  [month_of_year] [smallint] NULL ,

  [quarter] [nvarchar] (2) NULL ,

  [fiscal_period] [nvarchar] (20) NULL

) ON [PRIMARY]

DECLARE @WeekString varchar(12),

@dDate SMALLDATETIME,

@sMonth varchar(20),

@iYear smallint,

@iDayOfMonth smallint,

@iWeekOfYear smallint,

@iMonthOfYear smallint,

@sQuarter varchar(2),

@sSQL varchar(100),

@adddays int

 

SELECT @adddays = 1 --日期增量(可以自由设定)

SELECT @dDate = '01/01/2006' --开始日期

 

WHILE @dDate < '12/31/2010' --结束日期

BEGIN

 

  SELECT @WeekString = DATENAME (dw, @dDate)

  SELECT @sMonth=DATENAME(mm,@dDate)

  SELECT @iYear= DATENAME (yy, @dDate)

  SELECT @iDayOfMonth=DATENAME (dd, @dDate)

  SELECT @iWeekOfYear= DATENAME (week, @dDate)

  SELECT @iMonthOfYear=DATEPART(month, @dDate)

  SELECT @sQuarter = 'Q' + CAST(DATENAME (quarter, @dDate)as varchar(1))

  INSERT INTO time_by_day_dimension(the_date, the_day, the_month, the_year,

  day_of_month,

  week_of_year, month_of_year, quarter) VALUES

  (@dDate, @WeekString, @sMonth, @iYear, @iDayOfMonth, @iWeekOfYear,

  @iMonthOfYear, @sQuarter)

  SELECT @dDate = @dDate + @adddays

END

END
分享到:
评论

相关推荐

    数据仓库日期维度表创建存储过程

    尽管其功能相对简单,但仍然支持创建存储过程,因此这个脚本可能同样包含存储过程来生成日期维度表。 创建日期维度表的存储过程通常会涉及以下步骤: - 定义表结构:确定日期维度表需要包含哪些日期属性,并创建...

    时间维度生成程序

    在这个上下文中,时间维度生成程序可能包含一系列存储过程,这些过程被设计用来创建和维护时间维度表。它们可能包括生成特定时间范围的数据、填充缺失日期、处理闰年和非工作日等情况的逻辑。 接下来,我们看到文件...

    PL_SQL生成时间维度表

    2. **填充数据**: 运行存储过程`SP_GENERATE_TIME_DIMENSION`,该过程会自动生成一天内的所有分钟级别的时间维度数据。 3. **验证结果**: 执行查询语句检查`DIM_TIME`表中的数据是否正确生成。 #### 四、注意事项 ...

    PL_SQL生成日期维度表

    ### PL/SQL 生成日期维度表 #### 一、创建日期维度表 在数据库系统中,日期维度表是数据仓库中的一个关键组成部分,用于存储与日期相关的各种属性,以支持复杂的查询和分析需求。以下是对如何使用 PL/SQL 创建一个...

    在Sql Server 数据库中利用存储过程实现动态交叉表

    动态交叉表则是指在数据库查询过程中,根据实际运行时的动态条件,生成交叉表查询结果的技术。本文将探讨如何在SQL Server数据库中利用存储过程实现动态交叉表。 首先,我们需要理解交叉表的基本概念。在数据分析和...

    birt调用存储过程

    本文将详细介绍如何在BIRT中利用存储过程生成报表。 1. **概述** 存储过程可以理解为数据库中的可执行程序,它可以接收输入参数,处理数据,并可能返回结果。BIRT支持多种类型的存储过程返回值,包括单个结果集、...

    sql列转行以及行转列的通用存储过程

    以上代码创建了一个名为`#Temp_Change`的临时表,用于存储列转行过程中产生的中间结果。 3. **插入数据到临时表**: ```sql set @sql='insert into #Temp_Change select gid=0, info='',[ '+cast('+@changeCol+'...

    数据仓库建模 Powerdesigner 维度建模 软件分析 建模 视频教程

    2. **定义维度表**: 维度表描述了观察事实的角度,例如时间维度、地理位置维度等。PowerDesigner提供了便捷的工具来设计这些表,并支持层次结构的建立。 3. **关系连接**: 在PowerDesigner中,可以轻松地定义事实表...

    Report Studio中制作基于维度模型的报表,并允许上下钻取

    维度模型是一种常用的数据仓库设计模式,它将数据组织成事实表和维度表,以便于业务分析和报告生成。在Cognos Report Studio中,利用维度模型可以创建具有高度交互性和深度分析能力的报表。维度模型通常包含以下元素...

    简洁高效的数独矩阵生成器

    例如,可以使用`std::vector&lt;std::vector&lt;int&gt;&gt;`存储数独矩阵,并使用`std::set`或`std::bitset`来快速检查行、列和小九宫格的合法性。高效的编程技巧,如内联函数、模板元编程和STL迭代器,可以进一步优化代码性能...

    BI环境中的维度模型

    这种模型通常包括事实表和多个维度表,其中事实表存储具体度量值,而维度表则提供关于这些度量的背景信息或上下文。例如,在销售数据仓库中,事实表可能包含销售金额,而维度表则可能包括产品、时间、地点等信息。 ...

    oracle存储过程 行专列 java调用

    在Oracle数据库中,存储过程是预编译的SQL和PL/SQL...通过存储过程,我们可以根据需求动态生成SQL,使得代码更具灵活性和可扩展性。同时,Java的JDBC调用使得应用程序能够方便地与数据库进行交互,获取处理后的结果。

    高级Java人才培训专家-第四章:数仓维度层建设

    - **定义**:油站维度表主要用于记录加油站的相关信息,如位置、营业时间等。 - **开发要点**: - 设计字段时要考虑油站的基本属性,如地理位置坐标、所属公司等。 - 考虑与其他维度表(如服务网点维度表)的关系...

    维度建模---数据仓库工具包 第二版

    数据仓库是一种用于存储和管理企业历史数据的系统,旨在支持业务智能(BI)活动,如数据分析、报表生成和决策支持。与传统操作数据库相比,数据仓库通常具有更大的数据量和更复杂的数据结构。维度建模是一种专为数据...

    一步一步学习SQL_Server_BI

    5. **时间维度**:可能需要自定义工具(如 Winform 日期维度生成器)生成。 6. **事实表处理**:对于交易数据事实表,需要处理源系统与目标系统的键映射差异,使用“查找”组件来匹配源系统的键与数据仓库中的代理键...

    数据仓库工具箱:维度建模的完全指南

    事实表包含业务事件的核心测量值,如销售金额或生产数量,而维度表则提供对这些测量值的上下文理解,例如时间、地点或产品类别等。这种结构不仅简化了数据查询,还使得数据分析变得更加直观和高效。 ### 数据仓库的...

    维度和多维数据集的创建

    - 定义和部署多维数据集:利用向导自动生成多维数据集,选择事实表和维度表,映射时间属性,选择度量值,检测并创建维度层次结构。 #### 详细步骤解析 1. **创建项目**:启动Visual Studio,选择Analysis ...

    星型模式建模[定义].pdf

    星型模式的维度是独立的表,当对象模型转换为数据模型时,Rational Rose 可以生成维度的主键。 星型模式的优点在于它能够优化存储并保持数据结构的灵活性。然而,星型模式也存在一些缺陷,例如它不能满足数据挖掘的...

Global site tag (gtag.js) - Google Analytics