初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-09-10 10:35:48

もつ
Guest

ExecuteSQL IN演算子の引数について

ExecuteSQL IN演算子の引数設定について困っております。

スクリプト内で変数$xに複数の値を設定しております($x ← "1111" & ¶ & "2222" & ¶ & "3333"・・・)
その後ExecuteSQLで$xの値をキーにテーブルを検索して、
結果を取得したいのですが、IN演算子の引数にGetValueで取得した$xの値を「,」で連結したものを
設定したのですが、うまく結果が取得できませんでした。
この場合IN演算子の引数はどのようにすれば良いのでしょうか?

=======================================
ExecuteSQL (
  "SELECT 項目A
     FROM テーブルB
    WHERE キー項目C IN (?) " ;
  "" ;
  "" ;
          ← こちらに変数$xの値を全て設定したい
)
=======================================

お知恵をお貸しください。
よろしくお願いいたします。
よろしくお願いいたします。

#2 2020-09-10 11:38:38

qb_dp
Member

Re: ExecuteSQL IN演算子の引数について

「?」を使わずに書いてみては。

Let([
query="
	SELECT \"フィールド\"
	FROM \"テーブル\"
	WHERE \"フィールド\" IN ({values}) 
"
;query=Substitute ( query ; "{values}" ; "50075,50130" )
];
ExecuteSQL ( query ; "" ; "")
)

フィールドタイプが数字の場合、
Substitute ( query ; "{values}" ; "50075,50130" )

フィールドタイプがテキストの場合、各値をシングルクォーテーションでくるむ。
Substitute ( query ; "{values}" ; "'abc','def'" )

Offline

#3 2020-09-10 12:00:27

Hiro
Member

Re: ExecuteSQL IN演算子の引数について

通常SQLのサブクエリで代入するケースですが、今回は変数$xなのでFM関数で、

ExecuteSQL (
   "
      SELECT ""項目A""
      FROM ""テーブルB""
      WHERE ""項目C"" IN ( " & Substitute("'"& $x &"'"; [¶;"','"]) & " )
   "
   ; ""
   ; ""
)

Offline

#4 2020-09-10 13:18:34

もつ
Guest

Re: ExecuteSQL IN演算子の引数について

qb_dpさん、Hiroさん、ご回答ありがとうございました。
解決できました。

Registered users online in this topic: 0, guests: 1
[Bot] claudebot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 504.93 KiB (Peak: 509.47 KiB) ]