前提・実現したいこと
Javaで条件付きカウントを行って利用者人数を日付、システムの単位ごとに出力したいと思っています。
出力例
日付 システム名 利用者人数
2019/06/03 ○○ 3
2017/05/21 ☆☆ 2
2018/01/31 ¥¥¥ 5
発生している問題
GROUP BYでグループ化すると指定した期間外のデータまで取り出されてしまう。
GROUP BYをなくすとテーブルのユーザーコードが全件カウントされるだけになってしまう
該当のソースコード
java,xml
1ソースコード 2 3<!-- 利用者表示のデータを表示する --> 4 <select id="getUser" resultType="CountuserResult"> 5 SELECT 6 o.request_date, 7 s.system_name, 8 COUNT(o.user_code) AS countUser 9 FROM 10 log_system o 11 LEFT OUTER JOIN system_name s 12 ON (o.system_no = s.system_no) 13 <where> 14 <choose> 15 <when test="requestDateFrom != null && requestDateTo != null"> 16 AND o.requestDate BETWEEN #{requestDateFrom} AND #{requestDateTo} 17 </when> 18 <when test="requestDateFrom"> 19 <![CDATA[ 20 AND o.requestDate >= #{requestDateFrom} 21 ]]> 22 </when> 23 <when test="requestDateTo"> 24 <![CDATA[ 25 AND o.requestDate <= #{requestDateTo} 26 ]]> 27 </when> 28 </choose> 29 </where> 30 ORDER BY 31 o.request_date ASC, 32 s.system_no ASC; 33 </select>
補足情報(FW/ツールのバージョンなど)
eclipceを使用しています
あなたの回答
tips
プレビュー