以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教 (http://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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2025/5/4 13:13:00 -- 最终要什么结果?把流水表多行的附件合并到一起? |
-- 作者:keli0917 -- 发布时间:2025/5/4 17:28:00 -- 是的。附件列是图片型。 |
-- 作者:有点蓝 -- 发布时间: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 ……
|