2010-03-17 5 views
0

2000 년부터 2012 년까지의 데이터가 포함 된 캘린더 테이블이 있습니다 (2012 년은 의도적이지 않았습니다!). 나는 그 달의 주 수를 가지고 있지 않다는 것을 깨닫는다. (예 : 1 월 1,2,3,4,2 월 1,2,3,4)캘린더 테이블 - 주 월 번호

한 달에 주 숫자를 계산하려면 어떻게해야합니까? 이 테이블을 채우기 위해? 여기

는 테이블 스키마

CREATE TABLE [TCalendar] (
    [TimeKey] [int] NOT NULL , 
    [FullDateAlternateKey] [datetime] NOT NULL , 
    [HolidayKey] [tinyint] NULL , 
    [IsWeekDay] [tinyint] NULL , 
    [DayNumberOfWeek] [tinyint] NULL , 
    [EnglishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [SpanishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [FrenchDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [DayNumberOfMonth] [tinyint] NULL , 
    [DayNumberOfYear] [smallint] NULL , 
    [WeekNumberOfYear] [tinyint] NULL , 
    [EnglishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [SpanishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [FrenchMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [MonthNumberOfYear] [tinyint] NULL , 
    [CalendarQuarter] [tinyint] NULL , 
    [CalendarYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [CalendarSemester] [tinyint] NULL , 
    [FiscalQuarter] [tinyint] NULL , 
    [FiscalYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , 
    [FiscalSemester] [tinyint] NULL , 
    [IsLastDayInMonth] [tinyint] NULL , 
    CONSTRAINT [PK_TCalendar] PRIMARY KEY CLUSTERED 
    (
     [TimeKey] 
    ) ON [PRIMARY] 
) ON [PRIMARY] 
GO 

답변

1
update TCalendar 
set = WeekNumberOfMonth = DATEDIFF(week, DATEADD(MONTH, DATEDIFF(MONTH, 0, FullDateAlternateKey), 0), FullDateAlternateKey) +1 
에게 있습니다
관련 문제