테이블에 날짜 열이 있는데 특정 연도를 '필터링'/ 선택하고 싶습니다. 따라서 2010 년의 데이터가있는 경우 데이터를 표시하려는 '가장 빠른 날짜'로 '2011-10'을 지정하는 사용자 입력이 있습니다.Postgres/Ruby에서 날짜와 월 - 일을 비교하십시오.
나의 현재 SQL은 다음과 같습니다 다음 '어디'의 두 번째 부분에서
select round(sum(amount), 2) as amount,
date_part('month', date) as month
from receipts join items
on receipts.item = items.item
where items.expense = ?
and date_part('year', date)>=2014
and funding = 'General'
group by items.expense, month, items.order
order by items.order desc;
대신 일을 해> = 2014, I는 다른 매개 변수로 to_char(date, 'YY-MMMM') >= ?
그런 짓을 한 다음에 전달하려면 '2011-10'. 나는이 할 때, :
costsSql = "select round(sum(amount), 2) as amount,
to_char(date, 'YY-MMMM') as year_month
from receipts join items
on receipts.item = items.item
where items.expense = ?
and year_month >= ?
and funding = 'General'
group by items.expense, year_month, items.order
order by items.order desc"
을 내 두 PARAMS와 그 전화, 내가 포스트 그레스 오류 : PG::UndefinedColumn: ERROR: column "year_month" does not exist
은.
편집 : YYYY-MM 문자열을 날짜로 변환하고이를 내 매개 변수로 전달하여 작동 중입니다. 그러나 나는 왜 내가 select 절에 그 컬럼을 생성 한 후에 '컬럼이 존재하지 않는다'라는 에러를 얻었는지 이해하지 못한다. 누군가 설명 할 수 있을까? where 절에서 사용되지 않는 것과 같이 생성 된 열은 사용할 수 있습니까?
'date> =? :: date'을 사용하고 '2011-10-01'을 전달하는 것이 어떻습니까? – Andomar