используя PIVOT к серверу sql - PullRequest
0 голосов
/ 09 января 2011

Это абстрактная идея, которую я хочу реализовать своим первым выбором первой строки, я представляю здесь, но я не могу сделать это правильно.здесь категория [0], категория [2] ... и т. д., представляющие значения столбцов категории ... я знаю, что этот вид синтаксиса не работает, но я хочу сделать что-то подобное.

----------------------------------------------------------
SELECT category[0], category[1], category[2], category[3], category[4], category[5]
FROM(
select Row_number() OVER(ORDER BY (SELECT 1)) AS 'Serial Number',  
EP.FirstName,Ep.LastName, Ep.SignUpID, [dbo].[GetBookingRoleName](ES.UserId,EP.BookingRole) as RoleName,  
(select top 1 convert(varchar(10),eventDate,103)from [3rdi_EventDates] where EventId=@ItemId) as EventDate,  
(CASE [dbo].[GetBookingRoleName](ES.UserId,EP.BookingRole)  
WHEN 'Employee - Marketing' THEN 'DC'  
WHEN 'Employee - Accounting' THEN 'DC'  
WHEN 'Coaches' THEN 'DC'  
WHEN 'Student Client' THEN 'ST'  
WHEN 'Guest Doctor' THEN 'GDC'  
---....more categories here, i just removed a few  
END) as Category  
from [3rdi_EventParticipants] as EP  
inner join [3rdi_EventSignup] as ES on EP.SignUpId = ES.SignUpId  
WHERE EP.EventId = @ItemId AND EP.PlaceStatus IN (0,3,4,8)  
and userid in(  
select distinct userid from userroles  
where roleid not in(19,20,21,22) and roleid not in(1,2, 25, 44))) Up
PIVOT(sum(First_Name+Last_Name)) FOR Category (category[0], category[1], category[2], category[3], category[4], category[5])
Group by (SignUpID)

результат моего внутреннего оператора select, который я хочу переставить, используя сводную таблицу.

 S.NO First_name      last_name   SignUpID  Rol_Name      EventDate category
    1   User1Name       User1Name       12  90 Day Client   11/01/2011  DC
    2   User1NameAtt1   User1NameAtt1   12  90 Day Client   11/01/2011  DC
    3   User4Name       User4Name       13  Student Client  11/01/2011  ST
    4   User4NameAtt1   User4NameAtt1   13  Student Client  11/01/2011  ST
    5   user1           user1           14  90 Day Client   11/01/2011  DC
    6   att1            att1            14  Employee-Acco   11/01/2011  AD
    7   User4NameAtt2   User4NameAtt2   15  Student Client  11/01/2011  ST
    8   easdsd          ertrt           15  90 Day Client   11/01/2011  DC
    9   User4NameAtt3   User4NameAtt3   15  Employee-Acco   11/01/2011  AD

Я хочу, чтобы значения каждого столбца категории становились именем столбца, а ниже этого столбца - объединение имени и фамилии, но таблица в строке first_name + last_name должна отображаться только для тех строк, которые имеют общий signUpID, ниже их категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...