営業コードを 部門コード(1桁)+連番(7桁)で作成しています。
部門に関係なく、連番でコードを作成したいので、部門コードを除いたレコードの最大値を取得し、+1した値をセットしようと考えています。
以下のように記述するとエラーが返ってくるのですが、何か方法があるでしょうか?
var qryInfo = ‘/k/v1/records.json?app=’ + kintone.app.getId() +
‘&query=order by SlsCd.substring(1, 8) desc limit 1’;
order by句でsubstring を利用しない場合は、レコードが取得できていますのでorder by句ではsubstringが使えないのかな、と思っています。
尾崎さん
cstapの落合です。
var qryInfo = '/k/v1/records.json?app=' + kintone.app.getId() +
'&query=order by SlsCd.substring(1, 8) desc limit 1';
↓
var qryInfo = '/k/v1/records.json?app=' + kintone.app.getId() + '&query=order by ' + SlsCd.substring(1, 8) + ' desc limit 1';
とすれば良いのではないでしょうか?
ご回答ありがとうございます。
ご回答の通り書き直してみましたが、そもそもqueryとして動作しなくなってしまいました。
order by 値 desc limit 1
という意味になってしまうのでは?と思うのですが、違うのでしょうか。
イメージしていたのは↓のような構文でしたが。。
order by 項目の値 desc limit 1
尾崎さん
いまいち内容が把握できていませんが、queryにフィールドコード以外のものを指定したいということでしょうか?
説明が分かりにくくてすみません。
フィールドコードに登録された値の一部を使いたい、ということです。
具体的には、
30000103
40000104
20000105
30000106
というような値がセットされているとして、1桁目を除いた値の最大値を取得したい
ということです。
上記の例でいうと、
30000106
を取得したいのです。
substringを利用しない場合にちゃんと動いた記述は以下の通りです。
var qryInfo = ‘/k/v1/records.json?app=’ + kintone.app.getId() +
‘&query=order by SlsCd desc limit 1’;
尾崎さん
それであれば、その並び順用のフィールドを作成し、登録・編集時にSlsCd.substring(1, 8)
をそのフィールドに登録するようにしてはどうでしょう?
そうすれば、フィールドコードで並び順を指定できるかと思います。