以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=196477)

--  作者:keli0917
--  发布时间:2025/5/2 9:07:00
--  请教
Dim cmd1 As New SQL1Command
cmd1.C
UPD1ATE a  set a.FFileAddress = case  WHEN a.FFileAddress IS NULL   THEN CAST(b.附件 AS NVARCHAR(MAX))    WHEN a.FFileAddress LIKE \'%\' + CAST(b.附件 AS NVARCHAR(MAX)) + \'%\'      THEN CAST(b.附件 AS NVARCHAR(MAX))     ELSE       CAST(a.FFileAddress AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) + CAST(b.附件 AS NVARCHAR(MAX))    END  from {GLVchFileAddress} as a inner join {流水} as b  on a.凭证号 = b.凭证号 and a.经营单位 = b.经营单位 and  b.附件 Is not null"
    cmd1.ExecuteNonQue

当流水表中有只有一行(凭证号和经营单位),与GLVchFileAddress表中的(凭证号和经营单位),相同时,可以得到正确的附件值。
当流水表中有多行(凭证号和经营单位),与GLVchFileAddress表中的(凭证号和经营单位),相同时,只取到了流水表中第一个相同行的附件值。
帮忙看一下要如何修改?
先要将流水表按(凭证号和经营单位)分组生成一个临时表?还要合并生成一个多值字段的附件列?然后用临时表和GLVchFileAddress表再upd1ate?这种字符型列合并要如何写代码


[此贴子已经被作者于2025/5/2 9:07:55编辑过]