收录日期:2020/11/30 15:55:00 时间:2016/07/06 09:03:21 标签:基础类
select b.*
from proddta.f4102 a join [jde_crp].dbo.plan0 b
on a.iblitm=b.litm and a.ibmcu=b.mcu
影响1112行数据。

update proddta.f4102 set ibmpst=0
from proddta.f4102 a join [jde_crp].dbo.plan0 b
on a.iblitm=b.litm and a.ibmcu=b.mcu
影响了1110行数据。

为什么?
是不是在在两个操作之间 有人做个修改 
在执行
select b.* 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 
看影响多少行

可能关联到null值,关注
--TRY
begin tran
select b.* 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 
update proddta.f4102 set ibmpst=0 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 
if @@error=0
   commit
else
   rollback
 proddta.f4102 a join [jde_crp].dbo.plan0 b   把join 前加一下inner试一下
该回复于2009-09-14 11:32:56被版主删除
用这个那

select b.* 
from proddta.f4102 a WHERE EXISTS(SELECT 1 FROM [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu) 
看不出来
帮顶下,呵呵
该回复于2009-09-14 11:32:56被版主删除


select a.*
from proddta.f4102 a 
     join [jde_crp].dbo.plan0 b
        on a.iblitm=b.litm and a.ibmcu=b.mcu 

--返回多少行?

这正常啊,给你举个例子
set nocount on
declare @a table(a int, b int)
insert @a select 1,2
insert @a select 2,2
insert @a select 3,2

declare @b table(a int, b int)
insert @b select 1,2
insert @b select 1,2
insert @b select 2,2
set nocount off
select b.* from @a a inner join @b b on a.a=b.a   --3行
update @a set b=0 from @a a inner join @b b on a.a=b.a--2行


表proddta.f4102有1110行,它和[jde_crp].dbo.plan0联表后的结果集有1112行。
SET ANSI_NULLS OFF --分別試ON 與 OFF兩種情況 看看結果怎樣?
select b.* 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 

update proddta.f4102 set ibmpst=0 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 

select b.* 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 
这条语句返回的是B的数据,和Ajoin之后可能会有重复行,如果B中一行记录对用A两条,即使没选择A的记录,B也会显示两次,因为没加 DISTINCT
select DISTINCT A.*  
from proddta.f4102 a join [jde_crp].dbo.plan0 b  
on a.iblitm=b.litm and a.ibmcu=b.mcu   
这样应该是1110吧



update proddta.f4102 set ibmpst=0 
from proddta.f4102 a join [jde_crp].dbo.plan0 b 
on a.iblitm=b.litm and a.ibmcu=b.mcu 
这个更新的是proddta.f4102里面的记录,后面的条件都是过滤proddta.f4102 里面的数据
该回复于2009-09-14 11:32:56被版主删除
select a.* 
from proddta.f4102 a WHERE EXISTS(SELECT 1 FROM [jde_crp].dbo.plan0 b 
WHERE a.iblitm=b.litm and a.ibmcu=b.mcu) 
引用 14 楼 lwl0606 的回复:
select b.*
from proddta.f4102 a join [jde_crp].dbo.plan0 b
on a.iblitm=b.litm and a.ibmcu=b.mcu
这条语句返回的是B的数据,和Ajoin之后可能会有重复行,如果B中一行记录对用A两条,即使没选择A的记录,B也会显示两次,因为没加 DISTINCT
select DISTINCT A.*
from proddta.f4102 a join [jde_crp].dbo.plan0 b
on a.iblitm=b.litm and a.ibmcu=b.mcu
这样应该是1110吧


update proddta.f4102 set ibmpst=0
fro…


正解
来迟了,楼上都说了,连接产生重复行的问题

asp的Response.Write的问题? 你们难道没遇到过这个问题? 大虾们救命!!!在线等待.................. 在次提醒!女孩不要看! ADODB.Stream 错误 \'800a0bbc\' 用sql的朋友们进来看看,问题不是很难,帮帮我。谢谢。 寻兼职程序员,开发一个的屏幕取词工具软件 怎么在sdk编程中设置editbox的初始值 大虾们救命!!!在线等待................. 如何能够屏蔽WM_SIZEING的消息. 关于DataGrid的问题 找房子的问题?有办法的帮个忙! sql server 与oracle的数据类型 充分发挥网络优势和自由精神,共同开发维护我们自己的网站 遍历表单中的文本框,为何只出现第一个值 请教如何在VB中调用我在SQL中建好的带参数存储过程? 天天泡程序人生,无心向学,欲罢不能,咋办? 怎样向一个数组里面写入数据,使这些数据满足下面的条件? 请各位看看这个网站www.green-net.com.cn,一家不错的深圳通信公司,现在急缺研发人员(包括软件,测试,用服,市场人员),待遇从优。有\0 updete数据窗口时新insert的数据出现重复问题?紧急! 关于textbox和回车的问题 高分求一个VB源码分析工具CodeReview? 如何得到注册表的网上学习资料?拜托各位大虾指点。 我想买一个bbs论坛! 寻兼职程序员,开发一个屏幕取词工具软件 XP的IIS怪事特别多,怎么就连不上.mdb呢? cshadow(影子)大侠能不能给我 重发一次上次的没收到 用SOFTICE破解软件时怎么知道按几下F12就到了要破解程序的领空?而且对于F11的作用我也不是很理解,请明白的朋友讲一下。 请问属性和内容怎么写在这个里面,谢谢!很简单的,请看看!! fstream的标志位