У меня есть запросКак показать динамический столбец, используя сводную таблицу
declare @Leavetype varchar (Max)
select @Leavetype =(select LeaveName from LeaveType)
SELECT *
FROM
(SELECT e.EmpID,
e.EmpName ,
s.LeaveName,
case when l.Approval = 'Approved'
then l.TotalDays
else
0
end AS Total
from EmpInfo e
full JOIN ViewLeave l ON e.EmpID = l.EmpID
LEFT JOIN LeaveType s ON s.LeaveID = l.LeaveID
Where
l.year = '2013'
GROUP BY s.LeaveName,e.EmpID, e.EmpName ,l.Approval,l.TotalDays
)ps
pivot
(
sum(Total)
for LeaveName In ([@LeaveType])
)as pvt
Я хочу принять динамическое значение из типа отпуска таблицы Leavetype
LeaveType
таблица выглядит следующим образом
ID Leave type
1 SickLeave
2 Casual Leave
LeaveType
значение таблицы может меняться, и я должен показать данные, такие как
EmpId EmpName SickLeave Casual Leave
101 ramesh 1 0
Нет столбцов не зависит от нет строк в Leavetype
таблице
Если у кого есть идея, пожалуйста, помогите мне
Этот текущий запрос показывает ошибку
Subquery вернулись более 1 стоимость. Это недопустимо, когда подзапрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение.
Благодаря
Спасибо так много его действительно полезным. – user2516261
этот код работает нормально в sql-сервере, но когда я использую этот запрос (после создания хранимой процедуры) при кодировании его отображаемой ошибки ** onversion не удалось при преобразовании значения nvarchar '** – user2516261
вы внесли какие-либо изменения или добавили что-нибудь в вас, re proc? если это так, вам лучше задать другой вопрос с кодом, который вы используете в хранимой процедуре. вы также можете попробовать явно лить 'LeaveName' в' NVARCHAR (n) '. –