====== SQLタブ ======
{{:image:ac_tab_sql.png|SQLタブ}}
===== SQL文による検索 =====
ACFinderは [[https://www.sqlite.org/|SQLite3]] データベースライブラリを使用してデータベースファイルを作成しています。[[https://www.javadrive.jp/sqlite/select/|SQLite3 の SQL 文]]を使って独自の検索を行うことができます。\\
検索はSQLエディタにSQL文を入力し、実行ボタンを押します。簡易な入力支援機能として左側ペインにテーブル名とフィールド名を選択する部分があります。コンボボックスから使用するテーブルを選択し、使用するフィールドにチェックマークを入れ、ポップアップメニュー(右ボタンメニュー)を出すと、SQL文の候補が出ます。使用したいSQL文を選択するとSQLエディタのカーソル位置(選択範囲)に挿入されます。
テーブル名、フィールド名などの詳細は[[technote:dbdef|データベース定義]]を参照してください。
SQLite3 標準の関数や演算子以外に、[[technote:sqlex|ACFinder 用に拡張した SQL]]も使用可能です。
{{:image:ac_tab_sql_main.png|SQLタブ}}
===== SQL文の事例 =====
==== テーブルの内容を全て参照する ====
=== 登録基本部 ===
select * from kihon
=== 登録適用部 ===
select * from tekiyo
(登録適用部はデータ件数が多いので時間がかかります)
==== 作物名の一覧を作成する ====
select distinct sakumotsu from tekiyo order by sakumotsu
==== 農薬通称名と農薬の名称の一覧を検索する ====
select distinct tsusho,meisho from kihon order by tsusho
農薬通称名は、農薬の名称から屋号(メーカー名)を独自に取り除いたものです。ACFinderの屋号抜き取り処理が正しいかどうか、チェックするなどの用途に使えます。
==== 複数作物の使用時期と使用回数の確認表を作成する ====
select yoto, shurui, tsusho,
max(case when sakumotsu = 'なす' then jiki||'、'||kaisu else '' end) as なす,
max(case when sakumotsu = 'ピーマン' then jiki||'、'||kaisu else '' end) as ピーマン,
max(case when sakumotsu = 'かぼちゃ' then jiki||'、'||kaisu else '' end) as かぼちゃ,
max(case when sakumotsu = 'オクラ' then jiki||'、'||kaisu else '' end) as オクラ,
max(case when sakumotsu = 'トマト' then jiki||'、'||kaisu else '' end) as トマト,
max(case when sakumotsu = 'すいか' then jiki||'、'||kaisu else '' end) as すいか
from tekiyo where
yoto in ('殺虫剤','殺菌剤','殺虫殺菌剤') and
hoho = '散布' and
zaikei not in ('粉剤','粒剤') and
sakumotsu in ('なす','ピーマン','かぼちゃ','オクラ','トマト','すいか')
group by tsusho
order by yoto, shurui, tsusho