SpringProject

<Spring 가계부 프로젝트> MySQL MyBatis 검색어 입력 시 포함된 금액의 총합을 함께 출력하려면?

supagirl! 2022. 11. 21. 20:08

가계부 지출 리스트 페이지


가계부 프로젝트를 진행하면서... 어떻게 화면단을 구현해야할지 고민이 많았다.
리스트에서 검색을 하면 해당 결과의 총액을 함께 띄워주고 싶었는데 어떻게 쿼리문을 짜야될지...

 

우여곡절 끝에 일단 성공하긴 했다.

날짜로만 검색했을 때

 

"용돈" 키워드와 날짜를 함께 검색했을 때 해당 검색 결과 - 수입 리스트

 

MyBatis-MySql 쿼리문

 

1
2
3
 select user, category, memo, date, amount, sum(total) over(order by category) as total from
        테이블
        where user = #{memo} and date between #{시작날짜} and #{끝날짜} and 내용 컬럼 like concat('%', #{검색어}, '%')
cs

 


date값이 null이 될 수 없도록 input 태그에 현재날짜를 고정해놨다.
그렇기 때문에 검색 버튼만을 눌렀을 때 오늘 날짜로 검색이 되는 것이 디폴트이다.

검색했을 때, 테이블에 적힌 금액1과 검색결과의 총액2 를 한번에 띄워주기 위해
수입/지출을 기입할 때 금액의 key값을 두 개로 설정했다.

하나는 amout, 하나는 총액 계산을 위한 total.
그렇기에 하나의 뷰단에 개별금액과, 총금액을 모두 출력할 수 있었다.


원래 총액 쿼리 / 검색 쿼리 따로 하려고 했으나... 못생긴 mapper는 만들고 싶지 않아서. 

덕분에 sql 공부가 된 것 같다!