Я не знаю, как лучше это делать, но если мне нужна хранимая процедура для извлечения данных из нескольких представлений.
У меня есть два представления, первое из которых передает параметр CreationDate
в он и второй выполняют первый с дополнительными операторами.
Что я хочу сделать, это выбрать данные для этих двух представлений из кода C#; Я использую ASP. NET Webforms, VS 2010, чтобы получить результат из второго представления после изменения CreationDate
из первого просмотра.
Это выбор из первого представления, называемый VwInprogressSub1
select
CurrentAgentFK,
Count(*) as TotalLeads,
Sum(CASE WHEN LeadTicket.leadticketstatusfk=4 THEN 1 ELSE 0 END) AS AssignedCount,
Sum(CASE WHEN LeadTicket.leadticketstatusfk=6 THEN 1 ELSE 0 END) AS InProgressCount,
Sum(CASE WHEN DaysToGetInProgress=0 THEN 1 ELSE 0 END) AS RespondedSameDay,
Sum(CASE WHEN DaysToGetInProgress=1 THEN 1 ELSE 0 END) AS RespondedSecondDay,
Sum(CASE WHEN DaysToGetInProgress=2 THEN 1 ELSE 0 END) AS RespondedThirdDay,
Sum(CASE WHEN DaysToGetInProgress>2 THEN 1 ELSE 0 END) AS RespondedMorethanThreeDay
from
leadticket
where
isfullleadticket = 1 and isold = 0
and leadticket.CreationDateLG >= 20200201
and leadticket.CreationDateLG <= 20200229
group by
CurrentAgentFK
Это выбор из второго просмотра, называемый VwInprogress
:
SELECT
dbo.VW_User.BranchFranchiseeName AS Branch,
dbo.VW_User.UserName,
dbo.VwInprogressSub1.TotalLeads,
dbo.VwInprogressSub1.AssignedCount,
dbo.VwInprogressSub1.InProgressCount,
dbo.VwInprogressSub1.RespondedSameDay,
dbo.VwInprogressSub1.RespondedSecondDay,
dbo.VwInprogressSub1.RespondedThirdDay,
dbo.VwInprogressSub1.RespondedMorethanThreeDay,
(((((dbo.VwInprogressSub1.RespondedSameDay) * 5) +
((dbo.VwInprogressSub1.RespondedSecondDay) * 3) +
((dbo.VwInprogressSub1.RespondedThirdDay) * 2))) -
((dbo.VwInprogressSub1.RespondedMorethanThreeDay) * 2)) AS Score,
dbo.Vw_AgentsInAllTeams.TeamManagerUsername
FROM
dbo.VwInprogressSub1
INNER JOIN
dbo.VW_User ON dbo.VW_User.UserIdLG = dbo.VwInprogressSub1.CurrentAgentFK
LEFT JOIN
dbo.Vw_AgentsInAllTeams ON dbo.VW_User.UserIdLG = dbo.Vw_AgentsInAllTeams.UserPK
WHERE
dbo.VW_User.IsApproved = 1