with cte1 as
(
select BH as 'BH', min(sxh) as 'SXH',avg(PJF) as 'PJF' from KH_SubCompManager where nf='2011' group by BH
)
update KH_SubCompManager set DF=cte1.PJF where BH=cte1.BH and SXH=cte1.SXH运行时提示错误:消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.BH"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.SXH"。这是什么错误,这个错误又是什么意思???
(
select BH as 'BH', min(sxh) as 'SXH',avg(PJF) as 'PJF' from KH_SubCompManager where nf='2011' group by BH
)
update KH_SubCompManager set DF=cte1.PJF where BH=cte1.BH and SXH=cte1.SXH运行时提示错误:消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.BH"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.SXH"。这是什么错误,这个错误又是什么意思???
解决方案 »
- session共享SQLServer模式为何取不到session急...
- asp.net做大型网站合适吗?
- 关于RadioButtonList的问题。
- 我将密码MD5加密,为什么总是编译出错啊???
- asp.net 如果分页(不是指datagrid自带的分页方式),要求地址也有相应变化,如第一页是index.aspx
- 请问这样给用户分配角色
- 配置ASP.NET网站支持成员关系,“安全”那个选项不能用
- .Net MVC为何分多个文件夹而不是多个类库?这两种方法有区别吗
- 水晶报表9.2,急急急~~~~~~~~~~
- 取数分页问题
- 怎么从dataset里面取其中一行的值
- 新手求解c# 每单击一个Linkbutton弹出对应的曲线图
比如这句:update KH_SubCompManager set DF=cte1.PJF where BH=cte1.BH and SXH=cte1.SXH
cte1或者其它,必须在全局的语句里出现,如果没或者非全局,就报错了。另外操作数据库推荐:cyq.data,试一下,爽歪歪。
问题在于,你在UPDATE语句中使用了KH_SubCompManager和cte1这两个表来确定更新的范围,却没有指定FROM子名,所以sql解析器是并不知道cte1为何物。正确做法:with cte1 as
(
select BH as 'BH', min(sxh) as 'SXH',avg(PJF) as 'PJF'
from KH_SubCompManager where nf='2011' group by BH
)
UPDATE KH_SubCompManager SET DF=cte1.PJF
FROM KH_SubCompManager s INNER JOIN cte1 c
ON s.BH=c.BH AND s.SXH=c.SXH
注意UPDATE语句的用法
但是却想用cte取到的内容。
(
select BH as 'BH', min(sxh) as 'SXH',avg(PJF) as 'PJF'
from KH_SubCompManager where nf='2011' group by BH
)
UPDATE KH_SubCompManager SET DF=cte1.PJF
FROM KH_SubCompManager s INNER JOIN cte1 c
ON s.BH=c.BH AND s.SXH=c.SXH这样不行啊。提示错误:消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.PJF"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.PJF"。
(
select BH as BH, min(sxh) as SXH,avg(PJF) as PJF
from KH_SubCompManager where nf='2011' group by BH
)
update KH_SubCompManager set DF=cte1.PJF
from KH_SubCompManager,cte1
where KH_SubCompManager.BH=cte1.BH and KH_SubCompManager.SXH=cte1.SXH
with cte1 as
(
select BH as BH, min(sxh) as SXH,avg(PJF) as PJF
from KH_SubCompManager where nf='2011' group by BH
)
update KH_SubCompManager set DF=cte1.PJF from KH_SubCompManager khs inner join cte1 c on khs.BH=c.BH and khs.SXH=c.SXH
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.PJF"。还是不行啊
--你这个是有问题的,没有数据,应该有一对多的关系
update a set DF=(select top 1 PJF from cte1 where BH=a.BH and SXH=a.SXH)
from KH_SubCompManager a
update KH_SubCompManager set DF=cte1.PJF from KH_SubCompManager khs inner join cte1 c on khs.BH=c.BH and khs.SXH=c.SXH注意红色部分,你已经在join条件中为表cte1指定了别名c,那么在其它地方引用cte1时,只能用别名c,即cte1.PJF应为c.PJF若你没有指定别名,如#9楼一样,就用全名引用其列