初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


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

もつ
ゲストユーザー

[解決] 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
メンバー

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'" )

オフライン

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

Hiro
メンバー

Re: [解決] ExecuteSQL IN演算子の引数について

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

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

オフライン

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

もつ
ゲストユーザー

Re: [解決] ExecuteSQL IN演算子の引数について

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

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer