1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【SSIS】取り込みファイルに同一キー行が存在した場合、最初の行だけ取り出す!

Posted at

#やりたいこと
下図のように、赤線のデータのみ取得したい。
ここで取り込みファイルのキー項目は氏名とする。
取り込みファイル内容.png
#作成したパッケージ
全体図は下図のようになる。制御フローはデータフロータスクのみ。
全体図(データフロー).png

##各グループの役割について説明
###行番号設定
まず、取り込みファイルからどの行が何行目か分からないので、派生列、スクリプトコンポーネントより先頭から順に数字を設定する。
派生列設定.png

行番号割り振りスクリプト.png

ここまで実行するとデータビューアは以下のようになる。
行番号設定データビューア.png

###同一キー(名前)で最小の行番号データのみ取得
ここからが本番。
ファイルの各行をキー(名前)でグループ化して行番号が最小の値を取得する。
それをファイルのグループ化前と行番号でくっつけて完成!

集計.png

マージ結合後のデータビューア
マージ結合後データビューア.png

余談)各並び替えタスクはマージ結合タスクで必要なので適当に設定してください!

#まとめ
並び替えタスクで重複を排除できるようなチェックボックスがあったんですが、どの行を排除するまでは指定できなかったので、このような処理を書きました。
#感想
また、この方法を知るまでは一時表を使ってSQLで書こうとしましたが、一時表とトランザクションの設定がうまくいかず、断念しました。。。難しい。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?