为什么会这样???

zerobegin_3 2011-08-12 10:49:09
感谢CSDN好友,tomysea,wxr0323,ssp2009的帮助:

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,cte1
where KH_SubCompManager.BH=cte1.BH and KH_SubCompManager.SXH=cte1.SXH

这是什么写法,update from 后面直接跟了“两张表”,用Where 限定了两表之间的关系。

问题一:这是什么用法??? 怎么感觉像“内连接”和“外连接”似地???


而下面使用了“内连接”时:
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

总是提示:
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "cte1.PJF"。

这是怎么回事,那位大侠可以解释下???
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
快溜 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zerobegin_3 的回复:]
最好再说一下,这两种用法的区别???
[/Quote]没什么区别,都属于内连接。
qydvip 2011-08-12
  • 打赏
  • 举报
回复
关注。。。。。
zerobegin_3 2011-08-12
  • 打赏
  • 举报
回复
最好再说一下,这两种用法的区别???
快溜 2011-08-12
  • 打赏
  • 举报
回复
你上一个帖子里14楼得网友解释的很清楚了。
UPDATE KH_SubCompManager SET DF=c.PJF  --这里改为C就不好了
FROM KH_SubCompManager s INNER JOIN cte1 c
ON s.BH=c.BH AND s.SXH=c.SXH
qq290032431 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sswp7 的回复:]
引用 1 楼 ssp2009 的回复:

你上一个帖子里14楼得网友解释的很清楚了。
SQL code
UPDATE KH_SubCompManager SET DF=c.PJF --这里改为C就不好了
FROM KH_SubCompManager s INNER JOIN cte1 c
ON s.BH=c.BH AND s.SXH=c.SXH


赞。
[/Quote]

恩,不错。
sswp7 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ssp2009 的回复:]

你上一个帖子里14楼得网友解释的很清楚了。
SQL code
UPDATE KH_SubCompManager SET DF=c.PJF --这里改为C就不好了
FROM KH_SubCompManager s INNER JOIN cte1 c
ON s.BH=c.BH AND s.SXH=c.SXH
[/Quote]

赞。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧