【发布时间】:2020-04-12 10:25:37
【问题描述】:
我不知道这样做的最佳做法是什么,但如果我需要一个存储过程来从多个视图中获取数据。
我有两个视图,第一个将参数 CreationDate 传递给它,第二个使用附加语句执行第一个。
我要做的是从 C# 代码中从这两个视图中选择数据;在从第一个视图更改 CreationDate 后,我正在使用 ASP.NET Webforms、VS 2010 从第二个视图获取结果。
这是从名为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
【问题讨论】:
-
咳咳。 ...您到底想对这两个
SELECT语句做什么?它们是否以某种方式相关,您是否想将结果数据加入一个公共列(或一组列)?或者您还想如何在存储过程中使用这两个结果集?您需要解释更多,以便我们能够为您提供帮助.... -
@marc_s 不知何故我想在更改
first view的leadticket.CreationDateLG后显示second view的结果 -
@marc_s 我用每个视图的名称更新了问题,以使每件事都清楚
-
CurrentAgentFK 是加入这两个结果集的唯一键关系
-
@marc_s 我的回答不清楚?
标签: c# asp.net sql-server stored-procedures