目次
ExecuteSQL
条件に一致するレコードの件数を返すSQL
ExecuteSQL ( "SELECT COUNT (\"_kp_スタッフID\") FROM \"スタッフ管理\" WHERE \"_kf_支店\" = ? AND \"契約形態\" = ? AND \"ステータス\" = ? " ;""; ""; $支店ID; "社員"; "在籍中" )
注意事項
「FROM \”スタッフ管理\”」のスタッフ管理はテーブル名ではなく、オカレンス名を仕様しなければならない。
「$支店ID」は事前に変数に値を入れることで利用可能
条件に一致する値を取得(SELECT文)
ExecuteSQL ( "SELECT \"フィールド名\" FROM \"テーブル(オカレンス名)" WHERE \"フィールド名\" = ?" ;"";""; "条件" )
条件に一致するデータを指定した数だけ取得
ExecuteSQL ( "SELECT \"色名\" FROM \"z_Mカラー\" WHERE \"色名\" = ? OFFSET 0 ROWS FETCH FIRST ROWS ONLY" ;"";""; $カラー名 )
OFFSET 句は、結果セットの特定の開始ポイント。初期値は0。
FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
n は返される行の数です。n を省略した場合のデフォルト値は 1 です。
PERCENT が後に続く場合を除き、n は 1 以上の符号なし整数です。n の後に PERCENT が続く場合、値は正の小数値または符号なしの整数のいずれかです。
ROWS は ROW と同じです。
WITH TIES は、ORDER BY 句と共に使用する必要があります。
WITH TIES を使用すると、ピア行(ORDER BY 句に基づいて区別されない行)も返されるので、FETCH カウント値で指定された数よりも多くの行を返すことができます。
条件に一致する値を集計(SELECT SUM)
ある一定金額($集計基準金額)以上で、返品フラグ(f_返品)に値が入っていないものを期間で集計するクエリです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
[php] ExecuteSQL ( "SELECT SUM (\"数量\") FROM \"T仕入明細\" WHERE \"_kf_仕入先ID\" = ? AND \"f_返品\" IS NULL AND \"仕入単価\" = ? AND \"仕入日\" BETWEEN ? AND ?" ; ""; "" ; $仕入先ID; $集計基準金額; $from; $to) [/php] <h3>条件としてフィールドの値が空白(WHERE 式 1 IS NULL)</h3> あるフィールドが空白なものを条件として抽出する場合 [php] ExecuteSQL ( "SELECT COUNT (\"ID\") FROM \"Calendar_FCCalendarEvents\" WHERE \"年度\" = ? AND \"f_会社\" = ? AND \"Title\" = ? AND \"f_法定休日\" IS NULL " ;""; ""; $年度; "1"; "休日" ) [/php] <h3>条件に一致する値をグループごとに集計(SELECT SUM...GROUP BY)</h3> あるフィールドを使ってグループごとにまとめて(GROUP BY)一定金額($集計基準金額)以上で、返品フラグ(f_返品)に値が入っていないものを特定の年月で集計するクエリです。 [php] ExecuteSQL ( "SELECT \"_kf_仕入先ID\", SUM(\"仕入数量\") FROM \"T仕入明細\" WHERE \"f_返品\" IS NULL AND \"仕入単価\" &gt;= ? AND \"c_仕入年\" = ? AND \"c_仕入月\" = ? GROUP BY \"_kf_仕入先ID\" " ; ""; "" ; $集計仕入金額; $集計年; $集計月) [/php] 仕入先IDと、仕入先IDごとに仕入数量を集計した値が配列で帰ります。 <h4>上記配列の変数($結果array)を1件ずつ取得するスクリプト</h4> [php] #データの件数を取得し変数へ 変数を設定[$データ件数; 値: ValueCount ( $結果array )] #カウンターを初期化 変数を設定[$カウンター; 値: 1 ] Loop Exit Loop If [$カウンター > $データ件数] #カウンターの行数のデータを取得し、カンマ(,)を改行コードに変換して変数へ 変数を設定[$現在の行; 値: Substitute( GetValue ( $結果array ; $カウンター ) ; "," ; "改行コード" )] #配列の1つ目のデータ(仕入先ID)を取得し変数へ 変数を設定[$仕入先ID; 値: GetValue ( $現在の行 ; 1 )] #配列の2つ目のデータ( SUM(\"仕入数量\")集計された仕入数量)を取得しフィールドへ フィールド設定 [集計仕入数; GetValue ( $現在の行 ; 2 )] #その他処理 変数を設定[$カウンター; 値: $カウンター + 1 ] End Loop [/php] <h2>検索</h2> <h3>フィールドをまたいだ「or」検索</h3> 複数のフィールドに対して共通の検索キーワードで検索する。 グローバルフィールド「g_検索ワード」を作成し、画面に配置。そのオブジェクトにスクリプトトリガを設定して検索スクリプトを実行する。 [php] 変数を設定 [$検索ワード; 値: "*" &amp;amp;amp; テーブル名::g_検索ワード &amp;amp;amp; "*"] 検索モードに切り替え[一時停止:オフ] フィールド設定[対象テーブル::対象フィールド1; $検索ワード] 新規レコード・検索条件 フィールド設定[対象テーブル::対象フィールド2; $検索ワード] エラー処理[オン] 検索実行[] #結果からさらに絞り込む場合 検索モードに切り替え[一時停止:オフ] フィールド設定[対象テーブル::対象フィールド; 検索ワード] 対象レコードの絞り込み[] 検索実行[] エラー処理[オフ] [/php] <h2>ポータルのフィルター</h2> <h3>単一条件の場合</h3> キーワード入力したときにスクリプトで「ポータルの更新」を実行する必要がある。ポータルの更新時にはポータル名を指定する。 [php] If ( IsEmpty ( 検索文字を入れるグローバルフィールド ) ; 1 ; PatternCount ( 検索するフィールド ; 検索文字を入れるグローバルフィールド ) ) [/php] <h3>複数条件の場合</h3> <pre>選択用にポータルを設置し、キーワードでIDと名前を検索して絞り込む。 キーワード入力したときにスクリプトで「ポータルの更新」を実行する。 |
If ( IsEmpty ( Zユーティリティ::g_スタッフ検索 ) ; 1 ; PatternCount ( List ( 勤怠入力_Mスタッフ|選択用::_kp_スタッフID ; 勤怠入力_Mスタッフ|選択用::名前 ) ; Zユーティリティ::g_スタッフ検索 ) > 0 )
※ポータルの更新は、ポータル名を指定する必要がある。