【发布时间】:2015-01-29 20:22:54
【问题描述】:
我正在尝试将桌队的所有城市值更新为:“城市”+“#p”+“玩家数量”+“g”+“前进目标数量”(例如“Tokyo #p25 g74” )。
我尝试这样做并有这两个查询。一种用于获取球员数量,一种用于获取进球数。
查询玩家人数:
select t.city + '#p' + CONVERT(varchar(10), count(pt.playerId)) + '#g'
from team t,
player_team pt
where pt.teamID = t.teamID
group By t.teamId,t.city
查询进球数:
select count(*) totalgoals,
pt.teamID
from goals g,
player_team pt
where g.playerId = pt.playerId
group by pt.teamID
我无法合并这两个计数。 请帮帮我...
还有我的表格层次结构和字段,如下所示
player
(
playerID int,
firstName nvarchar(25),
lastName nvarchar(25),
nationality varchar(25),
birthDate smalldatetime,
age smallint,
position varchar(25)
)
team
(
teamID int,
name nvarchar(50),
city nvarchar(25)
)
player_team
(
playerID int,
teamID int,
season varchar(5)
)
match
(
matchID int,
homeTeamID int,
visitingTeamID int,
dateOfMatch smalldatetime,
week tinyint
)
goals
(
matchID int,
playerID int,
isOwnGoal bit,
minute tinyint
)
编辑:使用下面给出的选择查询效果很好,并给了我正确的结果。但是我怎样才能用这多条记录更新表?当我尝试将其作为子查询更新到更新语句时,它给了我编译错误并抱怨多记录...
错误:子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
【问题讨论】:
-
Mysql、sql-server 和 splite?这么多标签..
-
那么当你更新了城市之后,当你进球更多时你会怎么做?
-
SQL Server 使用
+进行连接,所以我认为这就是 OP 正在使用的...
标签: mysql sql sql-server sqlite tsql