久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用變量命名列

Naming a Column using Variable(使用變量命名列)
本文介紹了使用變量命名列的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我希望在一系列游戲中計算所有玩家的上升點差異.我希望第一個列名 PD1 的點差最小,PD2 次之,依此類推.我希望使用一個變量來執行此操作,該變量僅根據游戲數量將整數添加到PD"的末尾.將 AS @ColumnName 添加到計算末尾時,我不斷收到錯誤消息.

I wish to calculate Ascending Points Diff for all players in a sweep over a series of games. I wish to have the first column name PD1 with the least Points Difference, PD2 next lowest and so on. I wish to do this using a variable which just adds the integer to the end of 'PD' based on the number of games. I keep getting an error when I add AS @ColumnName to the end of the Calculation.

USE [Rugby Pools]


DECLARE @counter int
DECLARE @MaxPlayer int
DECLARE @ColumnName varchar(50)

SET @counter = (SELECT MIN([Player_ID]) FROM [dbo].[Players])
SET @MaxPlayer = (SELECT MAX([Player_ID]) FROM [dbo].[Players])


DECLARE @gamecounter int
DECLARE @MaxGame int
SET @gamecounter = (SELECT MIN([Game_ID]) FROM [dbo].[Match])
SET @MaxGame = (SELECT MAX([Game_ID]) FROM [dbo].[Match])
SET @ColumnName='PD'+@gamecounter

WHILE @gamecounter <= @MaxGame

BEGIN


WHILE @counter <= @MaxPlayer

BEGIN



SELECT     TOP (@gamecounter)   dbo.Players.Player_ID, dbo.Entries.Game_ID, ABS(ABS(dbo.Entries.Home_Score-dbo.Entries.Away_Score)-(dbo.Match.Home_Score-dbo.Match.Away_Score)) AS @ColumnName
FROM            Entries INNER JOIN
                         Match ON Entries.Game_ID = Match.Game_ID INNER JOIN
                         Players ON Entries.Player_ID = Players.Player_ID

                         WHERE dbo.Match.Home_Score IS NOT NULL AND dbo.Players.Player_ID=@counter

                         ORDER BY Players.Player_ID, PointsDiff1 ASC

SET @Counter += 1

                         END                        

SET @gamecounter += 1

END 

一旦工作,我將能夠對其進行更改以更新表格,這將允許我提供由獲勝決定的球員排名表,然后是錦標賽過程中的最佳分差.

Once working, I will be able to alter it to update a table which will allow me to provide a league table of players decided by wins, followed by best points difference over the course of the tournament.

推薦答案

像這樣將您的最終查詢部分更改為動態 sql.只能通過動態sql來實現.

Change your final query section to dynamic sql like this. It can be achieved only by dynamic sql.

 declare @query nvarchar(max)
 set @query = ' SELECT TOP (' + cast(@gamecounter as varchar(10)) + ') dbo.Players.Player_ID, 
               dbo.Entries.Game_ID, ABS(ABS(dbo.Entries.Home_Score-dbo.Entries.Away_Score)-(dbo.Match.Home_Score-dbo.Match.Away_Score)) AS ' + QUOTENAME(@ColumnName) + '
    FROM            Entries INNER JOIN
                             Match ON Entries.Game_ID = Match.Game_ID INNER JOIN
                             Players ON Entries.Player_ID = Players.Player_ID

                             WHERE dbo.Match.Home_Score IS NOT NULL AND dbo.Players.Player_ID= ' + cast(@counter as varchar(10)) + '
                             ORDER BY Players.Player_ID, PointsDiff1 ASC'

  sp_executesql @query

這篇關于使用變量命名列的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Modify Existing decimal places info(修改現有小數位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 日韩欧美精品一区 | 国产欧美一区二区三区久久手机版 | 日韩国产在线 | 欧美电影在线观看网站 | 欧美综合精品 | 国产免费一区二区 | 在线观看www | 国产综合精品一区二区三区 | 黄色片免费看视频 | 99re6在线视频精品免费 | 一区二区三区精品视频 | 久久成人人人人精品欧 | 拍真实国产伦偷精品 | 日韩欧美国产一区二区三区 | 成人在线免费 | 在线看一区二区 | 日韩精品一二三区 | 一区二区久久 | 香蕉一区| 欧美日韩一区二区三区四区 | 久草在线免费资源 | 国产精品区二区三区日本 | 免费在线一区二区 | 我要看免费一级毛片 | 天天搞夜夜操 | 在线观看中文字幕dvd播放 | 久久久久久av | 久久精品国产一区二区三区 | 国产成人高清在线观看 | 中文字幕在线三区 | 亚洲精品久久久一区二区三区 | 91av精品| 男人天堂网址 | 在线精品一区二区三区 | 欧美a级成人淫片免费看 | 一区二区三区免费观看 | www亚洲精品 | 久久草在线视频 | 天天干天天玩天天操 | 欧美日韩久久精品 | 精品亚洲一区二区三区四区五区 |