SQL Server 피벗을 사용하여 매주 시간표를 생성하고 싶습니다.피벗을 사용하여 매주 TimeTable을 생성하는 방법
내 데이터베이스에는 이러한 테이블이 있습니다.
create table Students
(
StudentID int identity primary key,
Name nvarchar(50)
)
create table Times
(
TimeID int identity primary key
,Name nvarchar(10)
)
create table Days
(
DayID int identity primary key
,Name nvarchar(20)
)
create table TimeTable
(
StudentID int references Students(StudentID)
,TimeID int references Times(TimeID)
,DayID int references Days(DayID)
,Value nvarchar(50)
)
insert Times values('t1')
insert Times values('t2')
insert Times values('t3')
insert Days values('sunday')
insert Days values('monday')
insert Days values('tuesday')
insert Days values('wednesday')
insert Days values('thursday')
insert Days values('friday')
insert Days values('saturday')
내가 열 (DayID, DAYNAME, T1, T2, T3)
내가이 쿼리를 사용하고 있지만, 때문에 최대 (값) 집계 함수를 사용하는 내가 시간표에 레코드를 삽입 할 때를 갖고 싶어 테이블이 쿼리 CMDS 후이 실행 예
SELECT *
FROM (SELECT dbo.Days.DayID, dbo.Days.Name, dbo.Times.Name AS Expr1, dbo.TimeTable.Value
FROM dbo.Times CROSS JOIN
dbo.Days LEFT OUTER JOIN
dbo.TimeTable ON dbo.Days.DayID = dbo.TimeTable.DayID) AS d_1
PIVOT (max (Value) FOR [Expr1]
IN (t1, t2, t3)) AS P
NULL이어야 열 T1, T2 및 t3.however T2 및 T3에 대해 하나 개의 값을 보여, ASP 값은 모든 열에 나타냈다.
insert Students values('ahmad')
insert TimeTable values(1,1,1,'asp')
덕분에 많이 답안 bluefeet을 위해. 대답이 도움이된다면 – user1329379
당신은 환영합니다, 그렇다면 당신은 왼쪽에있는 체크 표시를 통해 답을 표시했는지 확인하십시오. – Taryn