Foxtable(狐表)用户栏目专家坐堂 → 请教


  共有102人关注过本帖树形打印复制链接

主题:请教

帅哥哟,离线,有人找我吗?
keli0917
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:322 积分:3070 威望:0 精华:0 注册:2018/5/21 16:49:00
请教  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113715 积分:579130 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/5/4 13:13:00 [只看该作者]

最终要什么结果?把流水表多行的附件合并到一起?

 回到顶部
帅哥哟,离线,有人找我吗?
keli0917
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:322 积分:3070 威望:0 精华:0 注册:2018/5/21 16:49:00
  发帖心情 Post By:2025/5/4 17:28:00 [只看该作者]

是的。附件列是图片型。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113715 积分:579130 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/5/5 20:21:00 [只看该作者]

试试

…… from {GLVchFileAddress} as a inner join (SELECT  凭证号,经营单位,附件 = (STUFF( (SELECT char(13)+char(10) + CAST(附件 AS NVARCHAR(MAX)) FROM 流水 WHERE 凭证号 = A.凭证号 and 经营单位=b.经营单位 FOR xml path('')  ),1,1,'' ) ) FROM 流水 as A GROUP by 经营单位) as b  on a.凭证号 = b.凭证号 and a.经营单位 = b.经营单位 and ……

 回到顶部