次のサンプルクエリの最適化と結果の処理に関するアドバイスを探しています。使用中のSQL変異体は、次の構文を使用してSELECT文に制限されている内部のFileMakerは、ExecuteSQLエンジンです:SQLクエリと処理結果を最適化する
SELECT [DISTINCT] {* | column_expression [[AS] column_alias],...}
FROM table_name [table_alias], ...
[ WHERE expr1 rel_operator expr2 ]
[ GROUP BY {column_expression, ...} ]
[ HAVING expr1 rel_operator expr2 ]
[ UNION [ALL] (SELECT...) ]
[ ORDER BY {sort_expression [DESC | ASC]}, ... ]
[ OFFSET n {ROWS | ROW} ]
[ FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
[ FOR UPDATE [OF {column_expression, ...}] ]
クエリ:
SELECT item1 as val ,interval, interval_next FROM meddata
WHERE fk = 12 AND active1 = 1 UNION
SELECT item2 as val ,interval, interval_next FROM meddata
WHERE fk = 12 AND active2 = 1 UNION
SELECT item3 as val ,interval, interval_next FROM meddata
WHERE fk = 12 AND active3 = 1 UNION
SELECT item4 as val ,interval, interval_next FROM meddata
WHERE fk = 12 AND active4 = 1 ORDER BY val
これはサンプルとして、以下の結果を与えることがあります。私は(最適化のための提案に加えて)を達成するために探しています何
val,interval,interval_next
Artelac,0,1
Artelac,3,6
Celluvisc,1,3
Celluvisc,12,24
は次のようにフォーマットされた結果である。
val,interval,interval_next,interval,interval_next,interval,interval_next,interval,interval_next ->etc
Artelac,0,1,3,6
Celluvisc,1,3,12,24
この処理結果は、SQLエンジンによって生成されることをお勧めします。
可能ですか?
ありがとうございます。
EDIT:結果の一部ではありませんが、わかりやすくするために結果に列名を含めました。私は、結果に 'interval'と 'interval_next'の任意の数の列があるかもしれないことを説明したいと思います。
'case when then'節がありますか? – wonderbell
@wonderbellはい、 'then then'がサポートされています。 – AndreasT
別のval(例:Artelac)が1つの行にしか見つかりませんか?それは2列以上で見つけることができますか?たとえば、あなたは{Artelac、0,1}、{Artelac、3,6}、{Artelac、4,8}を持つことができますか?その場合、望ましい結果は何でしょうか? –