Datatable update and merge

初めまして。
2つのexcelからデータテーブルを作りました。dt1,dt2としたら、
dt1 には”ID"”Code"のColumnがあり、dt2には、”ID",”Code"、”name"があります。
dt1が正しいデータを持っているデータテーブルなので、dt1を元に、dt2をupdateもしくはmergeしたいですが、私が使っているuipathにはjoin data table activityがありません。
また、forumにある様々な方法で試してみましたが、エラーが発生し、失敗しました。

参考に、実現したいものをクエリーで作成してみました。
急いでいるので、だれか助けてください。

<参考>
Update dt2
Set ID = (Select ID From dt1 where dt2.code=dt1.code

Insert
Inset Into dt2 (ID,Code)
Select ID,Code From dt1 where dt2.code != dt1.code

Hi @30ab42842da83aef823e,

This will help you to fix you problem.

Make sure that you have the below version or higher.

https://www.uipath.com/product/release-notes/uipath-v2018.3.1

Regards
Balamurugan.S

Hi, @balupad14 thank you so much for your reply,
but I am not able to use the 2018.3 version.
What could I do in this case?

1 Like

Hi @30ab42842da83aef823e,
It may help you.

Regards
Balamurugan.S

LINQでやるなら

result = From tl1 In dt1.AsEnumerable _ From tl2 In dt2.AsEnumerable.Where(Function(m) m.Field(Of String)("code") = tl1.Field(Of String)("code")).DefaultIfEmpty() _ Select New With _ { _ .id = tl1!id, _ .code = tl1!code, _ .name = If(tl2 Is Nothing, "", tl2!name) _ }

で大丈夫だと思いますが、結果がIEnumerableになってしまいます。
※結果をどう使いたいか次第ですが、結果をループで処理するならこれでもよいのですが。。

ここは泥臭いかもしれませんが、ループで処理した方がメンテするのも楽かと思います。
※私ならそうします。

が参考になるのでは。

1 Like