如何解决使用存储过程根据同一ViewTable中另一列的ID填充ViewTable中的列
我有一个带有列TeamName
的视图,我想向该视图添加另一列Score
。
此列Score
必须在另一个表中汇总团队的所有得分。
这是我写的存储过程,该过程获取“离开和回家”总分的总和:
CREATE PROCEDURE GetScoreForATeam
@teamId INT,@ch_Id INT,@score1 INT,@score2 INT,@totalScore INT
AS
BEGIN
SET @score1 = (SELECT SUM(En_ResultTeamA)
FROM Encounter
WHERE Te_IdTeamA = @teamId AND Ch_Id = @ch_Id)
SET @score2 = (SELECT SUM (En_ResultTeamB)
FROM Encounter
WHERE Te_IdTeamB = @teamId AND Ch_Id = @ch_Id)
SET @totalScore = @score1 + @score2
END
GO
这是存储过程正在使用的表。它代表两支球队在冠军(ch_id
)和一个赛季(se_id
)之间的相遇。
根据HOME或AWAY,一个团队可以是TeamA或TeamB。
CREATE TABLE [dbo].[Encounter]
(
[En_Id] [int] IDENTITY(1,1) NOT NULL,[En_Date] [date] NOT NULL,[Te_IdTeamA] [int] NOT NULL,[Te_IdTeamB] [int] NOT NULL,[Se_Id] [int] NOT NULL,[Ch_Id] [int] NOT NULL,[En_ResultTeamA] [int] NULL,[En_ResultTeamB] [int] NULL
)
因此,我正在尝试创建一个视图,以从“会员”表(这很简单)中获取参加锦标赛的所有车队,并在该视图中添加一列“得分”,对于每一行,每个车队, “得分”列中必须显示SP的计算结果。
有什么想法吗?
编辑:这是我希望从“遇到表”中获得的视图。 ps:谢谢HABO
+----------------+--------+------------+
| ChampionshipId | TeamId | TotalScore |
+----------------+--------+------------+
| 1 | 1 | 6 |
| 1 | 5 | 5 |
| 1 | 2 | 4 |
| 1 | 4 | 2 |
| 1 | 3 | 0 |
+----------------+--------+------------+
解决方法
您需要类似的东西吗?
CREATE VIEW Vw_League AS
SELECT Ch_Id,Se_Id,[Te_IdTeamA] AS TeamId,'Home' AS Stadium,SUM(En_ResultTeamA) AS Total
FROM Encounter WITH (NOLOCK)
GROUP BY [Te_IdTeamA],Ch_Id,Se_Id
UNION ALL
SELECT Ch_Id,[Te_IdTeamB] AS TeamId,'Away' AS Stadium,SUM(En_ResultTeamB) AS Total
FROM Encounter WITH (NOLOCK)
GROUP BY [Te_IdTeamB],Se_Id
SELECT * FROM Vw_League
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。