Q&A

回答の並べ替え:
投稿新規に質問を投稿する

データベースからIDが最大のレコードを取り出す方法

rider rider

2022-12-21 21:20

お世話になります。

RPAの重複起動を回避するために、1枚目の画像のテーブルに
 ステータス(status)
 RPAの名称(rpa_name)
 RPAの起動時刻(start_time)
を登録して制御しようと考えています。

このテーブルから、最大のIDもしくは最大のLAST_MODIFIEDのレコードを
取り出すにはどのようにアクションセットを組めばよいのでしょうか。

かなり初歩的な質問で恐れ入りますがよろしくお願いいたします。

rider rider
日本コンピュータシステム様

お世話になります。

この度は諸事情で返信が遅くなり申し訳ありませんでした。

ご教示いただいた内容で試してみたところ、うまく動作しました!
取得と更新の2回に分ける必要があるのですね。

助かりました。どうもありがとうございました!
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
こんにちは。
データ操作の「テーブル~のデータを更新する」アクションでテーブルの更新が行なえます。
画像の例で言いますと、1つ目のアクションでIDの最大値をセルのA2にセットし、2つ目のアクションで更新する流れになります。「更新条件」は最大値のセルのA2を条件にすることで、最大IDのレコードを更新できると思います。

なお、1つ目のアクションで最大値の取得はYexiongmao様の対応が良いと思います。
結果は変わらないかもしれませんが、SQLアクションは追加アドオン機能になりますので、標準機能で実現できるのであれば、標準機能を利用し構築した方がスマートだと思います。
メールコンタクトをとる
rider rider
Yexiongmao様

 ご親切に追加の回答をいただきありがとうございます。

日本コンピュータシステム様

 いつもご回答いただきありがとうございます。

追加の質問になりますが、1枚目の画像のようなテーブルの時
IDが最大のレコードのstatusを0にするにはどのようにすればよいのでしょうか。
(画像の場合だと、IDが10のレコードのstatusを0にする)

SQLアクションを使って、SELECTした結果でUPDATEするSQL文を書けばよいのかなと思ったのですが、SQLアクションはデータ取得しかできないようなので、やり方がわかりませんでした。

よろしくお願いいたします。

Yexiongmao Yexiongmao
こんにちは。

SQLアクションを使わない方法です。
IDを降順でソートして取得件数を1件にすれば最大ID のレコードを取得できます。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
追記になりますが、バージョン関連等でSQLアクションが利用できない場合の対応について考えてみました。
画像のように「テーブルから複数件取得する」アクションを利用しIDもしくはLAST_MODIFIEDをセルのA1起点に表示した場合の例になります。
データ表示後、以下の関数を利用することで最大値を取得することができます。

=MAX(A1:A65536)

「A65536」はCELFの行数最大値になります。他にも指定の方法はあるかと思いますがご参考下さい。
メールコンタクトをとる
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
メダルベストアンサー
こんにちは。
SQLアクションが利用できる前提になりますが、画像のようにSQLアクションにMAXを利用したSQLを記載することでIDもしくはLAST_MODIFIEDの最大値を取得できると思います。
なお、SQLアクションは拡張オプションなので、以下の方法で設定が必要です。

https://cloud.celf.jp/celf-help/ja/texts/extension_sql/about_sql.html
メールコンタクトをとる