以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教SQL语句写法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53286)

--  作者:baoxyang
--  发布时间:2014/7/4 10:30:00
--  请教SQL语句写法
表一:托运单据
托运单号 异常次数 销单否
表二:异常信息
托单号 销单否
现在要用COUNT统计异常信息的托单号的记录数并赋值给托运单据相应的异常次数
 

update 托运单据 a set a.异常次数 =(select b.counts from (select 托单号,count(*) counts from 异常信息 where 销单否 = \'否\' group by 托单号 ) b where a.托运单号 = b.托单号 and a.销单否 = \'否\')

这个语句有错,请帮忙应如何写?谢了!!


--  作者:有点甜
--  发布时间:2014/7/4 10:34:00
--  

 呃,很简单,参考正确例子

 

update A set 列名 = B.列名 from (select 编码,count(*)as 列名1,SUM(CASE WHEN 条件 THEN 1 ELSE 0 END) AS 列名 from c表 group by 编码) as B where A.编号 = B.编号

--  作者:Bin
--  发布时间:2014/7/4 10:35:00
--  
...
[此贴子已经被作者于2014-7-4 10:42:58编辑过]

--  作者:baoxyang
--  发布时间:2014/7/4 10:50:00
--  
消息 102,级别 15,状态 1,第 1 行
\'a\' 附近有语法错误。
消息 156,级别 15,状态 1,第 1 行
关键字 \'where\' 附近有语法错误。

--  作者:有点甜
--  发布时间:2014/7/4 10:54:00
--  

请贴出你的代码

 

update 托运单据 a set 异常次数 = b.counts from (Select 托单号,count(*) counts from 异常信息 where 销单否 = \'否\' group by 托单号 ) b where a.托运单号 = b.托单号 and a.销单否 = \'否\'


--  作者:baoxyang
--  发布时间:2014/7/4 10:56:00
--  
以下是引用有点甜在2014-7-4 10:54:00的发言:

请贴出你的代码

 

update 托运单据 a set 异常次数 = b.counts from (Select 托单号,count(*) counts from 异常信息 where 销单否 = \'否\' group by 托单号 ) b where a.托运单号 = b.托单号 and a.销单否 = \'否\'

上述代码提示如下错误

消息 102,级别 15,状态 1,第 1 行
\'a\' 附近有语法错误。
消息 102,级别 15,状态 1,第 1 行
\'b\' 附近有语法错误。


--  作者:jijianjsj
--  发布时间:2014/7/4 11:25:00
--  
update 托运单据  set 异常次数 = b.counts from 托运单据 left join (Select 托单号,count(*) counts from 异常信息 where 销单否 = \'否\' group by 托单号 ) b on  托运单据 .托运单号 = b.托单号 where  托运单据 .销单否 = \'否\'
[此贴子已经被作者于2014-7-4 11:26:49编辑过]

--  作者:baoxyang
--  发布时间:2014/7/4 21:36:00
--  
以下是引用jijianjsj在2014-7-4 11:25:00的发言:
update 托运单据  set 异常次数 = b.counts from 托运单据 left join (Select 托单号,count(*) counts from 异常信息 where 销单否 = \'否\' group by 托单号 ) b on  托运单据 .托运单号 = b.托单号 where  托运单据 .销单否 = \'否\'
[此贴子已经被作者于2014-7-4 11:26:49编辑过]

OK,多谢指点!