Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Database Log ID

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

CREATE TABLE [dbo].

[DimCustomer](
[CustomerKey] [int] IDENTITY(1,1) NOT NULL,
[GeographyKey] [int] NULL,
[CustomerAlternateKey] [nvarchar](15) NOT NULL,
[Title] [nvarchar](8) NULL,
[FirstName] [nvarchar](50) NULL,
[MiddleName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[NameStyle] [bit] NULL,
[BirthDate] [date] NULL,
[MaritalStatus] [nchar](1) NULL,
[Suffix] [nvarchar](10) NULL,
[Gender] [nvarchar](1) NULL,
[EmailAddress] [nvarchar](50) NULL,
[YearlyIncome] [money] NULL,
[TotalChildren] [tinyint] NULL,
[NumberChildrenAtHome] [tinyint] NULL,
[EnglishEducation] [nvarchar](40) NULL,
[SpanishEducation] [nvarchar](40) NULL,
[FrenchEducation] [nvarchar](40) NULL,
[EnglishOccupation] [nvarchar](100) NULL,
[SpanishOccupation] [nvarchar](100) NULL,
[FrenchOccupation] [nvarchar](100) NULL,
[HouseOwnerFlag] [nchar](1) NULL,
[NumberCarsOwned] [tinyint] NULL,
[AddressLine1] [nvarchar](120) NULL,
[AddressLine2] [nvarchar](120) NULL,
[Phone] [nvarchar](20) NULL,
[DateFirstPurchase] [date] NULL,
[CommuteDistance] [nvarchar](15) NULL)

CREATE TABLE [dbo].[Dim_Date] (


[Date_id] [int] NOT NULL,
[Date] [date] NOT NULL,
[Day] [int] NOT NULL,
[DaySuffix] [char](2) NOT NULL,
[Weekday] [tinyint] NOT NULL,
[WeekDayName] [varchar](10) NOT NULL,
[WeekDayName_Short] [char](3) NOT NULL,
[WeekDayName_FirstLetter] [char](1) NOT NULL,
[DOWInMonth] [tinyint] NOT NULL,
[DayOfYear] [smallint] NOT NULL,
[WeekOfMonth] [tinyint] NOT NULL,
[WeekOfYear] [tinyint] NOT NULL,
[Month] [tinyint] NOT NULL,
[MonthName] [varchar](10) NOT NULL,
[MonthName_Short] [char](3) NOT NULL,
[MonthName_FirstLetter] [char](1) NOT NULL,
[Quarter] [tinyint] NOT NULL,
[QuarterName] [varchar](6) NOT NULL,
[Year] [int] NOT NULL,
[MMYYYY] [char](6) NOT NULL,
[MonthYear] [char](7) NOT NULL,
IsWeekend BIT NOT NULL,
IsHoliday BIT NOT NULL,
HolidayName NVARCHAR(50) NULL,
[FirstDateofYear] DATE NULL,
[LastDateofYear] DATE NULL,
[FirstDateofQuater] DATE NULL,
[LastDateofQuater] DATE NULL,
[FirstDateofMonth] DATE NULL,
[LastDateofMonth] DATE NULL,
[FirstDateofWeek] DATE NULL,
[LastDateofWeek] DATE NULL,
PRIMARY KEY CLUSTERED ([Date_id] ASC)
);
--Insert Values
SET NOCOUNT ON

DECLARE @StartDate DATE = '2023-01-01'


DECLARE @EndDate DATE = '2033-12-31'

WHILE @StartDate < @EndDate


BEGIN
INSERT INTO [dbo].[Dim_Date] (
[Date_id],
[Date],
[Day],
[DaySuffix],
[Weekday],
[WeekDayName],
[WeekDayName_Short],
[WeekDayName_FirstLetter],
[DOWInMonth],
[DayOfYear],
[WeekOfMonth],
[WeekOfYear],
[Month],
[MonthName],
[MonthName_Short],
[MonthName_FirstLetter],
[Quarter],
[QuarterName],
[Year],
[MMYYYY],
[MonthYear],
[IsWeekend],
[IsHoliday],
[FirstDateofYear],
[LastDateofYear],
[FirstDateofQuater],
[LastDateofQuater],
[FirstDateofMonth],
[LastDateofMonth],
[FirstDateofWeek],
[LastDateofWeek]
)
SELECT Date_id = YEAR(@StartDate) * 10000 + MONTH(@StartDate) * 100 +
DAY(@StartDate),
DATE = @StartDate,
Day = DAY(@StartDate),
[DaySuffix] = CASE
WHEN DAY(@StartDate) = 1
OR DAY(@StartDate) = 21
OR DAY(@StartDate) = 31
THEN 'st'
WHEN DAY(@StartDate) = 2
OR DAY(@StartDate) = 22
THEN 'nd'
WHEN DAY(@StartDate) = 3
OR DAY(@StartDate) = 23
THEN 'rd'
ELSE 'th'
END,
WEEKDAY = DATEPART(dw, @StartDate),
WeekDayName = DATENAME(dw, @StartDate),
WeekDayName_Short = UPPER(LEFT(DATENAME(dw, @StartDate), 3)),
WeekDayName_FirstLetter = LEFT(DATENAME(dw, @StartDate), 1),
[DOWInMonth] = DAY(@StartDate),
[DayOfYear] = DATENAME(dy, @StartDate),
[WeekOfMonth] = DATEPART(WEEK, @StartDate) - DATEPART(WEEK, DATEADD(MM,
DATEDIFF(MM, 0, @StartDate), 0)) + 1,
[WeekOfYear] = DATEPART(wk, @StartDate),
[Month] = MONTH(@StartDate),
[MonthName] = DATENAME(mm, @StartDate),
[MonthName_Short] = UPPER(LEFT(DATENAME(mm, @StartDate), 3)),
[MonthName_FirstLetter] = LEFT(DATENAME(mm, @StartDate), 1),
[Quarter] = DATEPART(q, @StartDate),
[QuarterName] = CASE
WHEN DATENAME(qq, @StartDate) = 1
THEN 'first'
WHEN DATENAME(qq, @StartDate) = 2
THEN 'second'
WHEN DATENAME(qq, @StartDate) = 3
THEN 'third'
WHEN DATENAME(qq, @StartDate) = 4
THEN 'fourth'
END,
[Year] = YEAR(@StartDate),
[MMYYYY] = RIGHT('0' + CAST(MONTH(@StartDate) AS VARCHAR(2)), 2) +
CAST(YEAR(@StartDate) AS VARCHAR(4)),
[MonthYear] = CAST(YEAR(@StartDate) AS VARCHAR(4)) + UPPER(LEFT(DATENAME(mm,
@StartDate), 3)),
[IsWeekend] = CASE
WHEN DATENAME(dw, @StartDate) = 'Sunday'
OR DATENAME(dw, @StartDate) = 'Saturday'
THEN 1
ELSE 0
END,
[IsHoliday] = 0,
--[IsSpecialDay] = 0,
[FirstDateofYear] = CAST(CAST(YEAR(@StartDate) AS VARCHAR(4)) + '-01-01' AS
DATE),
[LastDateofYear] = CAST(CAST(YEAR(@StartDate) AS VARCHAR(4)) + '-12-31' AS DATE),
[FirstDateofQuater] = DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0),
[LastDateofQuater] = DATEADD(dd, - 1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) + 1,
0)),
[FirstDateofMonth] = CAST(CAST(YEAR(@StartDate) AS VARCHAR(4)) + '-' +
CAST(MONTH(@StartDate) AS VARCHAR(2)) + '-01' AS DATE),
[LastDateofMonth] = CONVERT(DATETIME, CONVERT(DATE, DATEADD(DD, -(DATEPART(DD,
(DATEADD(MM, 1, @StartDate)))), DATEADD(MM, 1, @StartDate)))),
--[LastDateofMonth] = EOMONTH(@StartDate),
[FirstDateofWeek] = DATEADD(dd, - (DATEPART(dw, @StartDate) - 1), @StartDate),
[LastDateofWeek] = DATEADD(dd, 7 - (DATEPART(dw, @StartDate)), @StartDate)

SET @StartDate = DATEADD(DD, 1, @StartDate)


END

--câu lệnh update 1 số ngày đặc biệt


UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Tết dương lịch'
WHERE [Month] = 1
AND [DAY] = 1;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Valentine 14/2'
WHERE [Month] = 2
AND [DAY] = 14;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày quốc tế phụ nữ 8/3'
WHERE [Month] = 3
AND [DAY] = 8;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Giải phóng Miền Nam 30/4'
WHERE [Month] = 4
AND [DAY] = 30;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Quốc tế Lao động 1/5'
WHERE [Month] = 5
AND [DAY] = 1;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Quốc tế thiếu nhi 1/6'
WHERE [Month] = 6
AND [DAY] = 1;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Quốc khánh Việt Nam 2/9'
WHERE [Month] = 9
AND [DAY] = 2;
UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày phụ nữ Việt Nam 20/10'
WHERE [Month] = 20
AND [DAY] = 10;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Ngày Nhà giáo Việt Nam 20/11'
WHERE [Month] = 11
AND [DAY] = 20;

UPDATE Dim_Date
SET [IsHoliday] = 1,
[HolidayName] = N'Lễ Giáng sinh'
WHERE [Month] = 12
AND [DAY] = 25;

CREATE TABLE [dbo].[DimEmployee](


[EmployeeKey] [int] IDENTITY(1,1) NOT NULL,
[ParentEmployeeKey] [int] NULL,
[EmployeeNationalIDAlternateKey] [nvarchar](15) NULL,
[ParentEmployeeNationalIDAlternateKey] [nvarchar](15) NULL,
[SalesTerritoryKey] [int] NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[MiddleName] [nvarchar](50) NULL,
[NameStyle] [bit] NOT NULL,
[Title] [nvarchar](50) NULL,
[HireDate] [date] NULL,
[BirthDate] [date] NULL,
[LoginID] [nvarchar](256) NULL,
[EmailAddress] [nvarchar](50) NULL,
[Phone] [nvarchar](25) NULL,
[MaritalStatus] [nchar](1) NULL,
[EmergencyContactName] [nvarchar](50) NULL,
[EmergencyContactPhone] [nvarchar](25) NULL,
[SalariedFlag] [bit] NULL,
[Gender] [nchar](1) NULL,
[PayFrequency] [tinyint] NULL,
[BaseRate] [money] NULL,
[VacationHours] [smallint] NULL,
[SickLeaveHours] [smallint] NULL,
[CurrentFlag] [bit] NOT NULL,
[SalesPersonFlag] [bit] NOT NULL,
[DepartmentName] [nvarchar](50) NULL,
[StartDate] [date] NULL,
[EndDate] [date] NULL,
[Status] [nvarchar](50) NULL,
[EmployeePhoto] [varbinary](max) NULL)

CREATE TABLE [dbo].[DimProduct](


[ProductKey] [int] IDENTITY(1,1) NOT NULL,
[ProductAlternateKey] [nvarchar](25) NULL,
[ProductSubcategoryKey] [int] NULL,
[WeightUnitMeasureCode] [nchar](3) NULL,
[SizeUnitMeasureCode] [nchar](3) NULL,
[EnglishProductName] [nvarchar](50) NOT NULL,
[SpanishProductName] [nvarchar](50) NOT NULL,
[FrenchProductName] [nvarchar](50) NOT NULL,
[StandardCost] [money] NULL,
[FinishedGoodsFlag] [bit] NOT NULL,
[Color] [nvarchar](15) NOT NULL,
[SafetyStockLevel] [smallint] NULL,
[ReorderPoint] [smallint] NULL,
[ListPrice] [money] NULL,
[Size] [nvarchar](50) NULL,
[SizeRange] [nvarchar](50) NULL,
[Weight] [float] NULL,
[DaysToManufacture] [int] NULL,
[ProductLine] [nchar](2) NULL,
[DealerPrice] [money] NULL,
[Class] [nchar](2) NULL,
[Style] [nchar](2) NULL,
[ModelName] [nvarchar](50) NULL,
[LargePhoto] [varbinary](max) NULL,
[EnglishDescription] [nvarchar](400) NULL,
[FrenchDescription] [nvarchar](400) NULL,
[ChineseDescription] [nvarchar](400) NULL,
[ArabicDescription] [nvarchar](400) NULL,
[HebrewDescription] [nvarchar](400) NULL,
[ThaiDescription] [nvarchar](400) NULL,
[GermanDescription] [nvarchar](400) NULL,
[JapaneseDescription] [nvarchar](400) NULL,
[TurkishDescription] [nvarchar](400) NULL,
[StartDate] [datetime] NULL,
[EndDate] [datetime] NULL,
[Status] [nvarchar](7) NULL)

CREATE TABLE [dbo].[DimSalesTerritory](


[SalesTerritoryKey] [int] IDENTITY(1,1) NOT NULL,
[SalesTerritoryAlternateKey] [int] NULL,
[SalesTerritoryRegion] [nvarchar](50) NOT NULL,
[SalesTerritoryCountry] [nvarchar](50) NOT NULL,
[SalesTerritoryGroup] [nvarchar](50) NULL,
[SalesTerritoryImage] [varbinary](max) NULL)

You might also like