MultipleSelect を使うと、エクセルのフィルターのような、複数アイテムの指定による検索が可能となり、検索機能が大幅に向上します。
[ 設置画面例 ]
[ アイテム用SQL例 ]
グループ化した各範囲値を結果レコードにする。concatで区切った左がselectタグのvalue、右がテキスト
<!-- 船スペックフィルター用 -->
<select id="selTEU1000CmbList" resultType="String">
/* TEU 1000 */
select
concat(
concat(truncate(v.TEU, -3), '-',truncate(v.TEU, -3) + 999), ',',
concat(cast(truncate(v.TEU, -3) as char), ' - ',
cast(truncate(v.TEU, -3) + 999 as char), ' X ', count(Name))
)
from
vessel2 v
group by
truncate(v.TEU, -3)
</select>
<select id="selYear5CmbList" resultType="String">
/* Year 5 */
select
concat(
concat(min(v.Year), '-', max(v.year)), ',',
cast(concat(min(v.Year), ' - ', max(v.year)) as char), ' X ', count(Name)
)
from
vessel2 v
group by
floor(v.Year / 5);
</select>
[ SQL実行結果例 ]
0-999,0 – 999 X 545
1000-1999,1000 – 1999 X 411
2000-2999,2000 – 2999 X 165
3000-3999,3000 – 3999 X 67
4000-4999,4000 – 4999 X 287
5000-5999,5000 – 5999 X 154
6000-6999,6000 – 6999 X 118
7000-7999,7000 – 7999 X 28
8000-8999,8000 – 8999 X 229
9000-9999,9000 – 9999 X 135
10000-10999,10000 – 10999 X 83
11000-11999,11000 – 11999 X 38
12000-12999,12000 – 12999 X 14
13000-13999,13000 – 13999 X 140
14000-14999,14000 – 14999 X 78
15000-15999,15000 – 15999 X 19
16000-16999,16000 – 16999 X 9
17000-17999,17000 – 17999 X 6
18000-18999,18000 – 18999 X 26
19000-19999,19000 – 19999 X 29
20000-20999,20000 – 20999 X 31
21000-21999,21000 – 21999 X 8
[ selectタグ例 (multiple未適用) ]
コメントを投稿するにはログインしてください。