2016-11-07 1 views
1
select SPARE_PART_ID amont_id,sum(amount) monthAmount 
from pmms.SPARE_PART_TRANS_INFO 
where trans_type='2' 
and CAST(created_dt AS date) between '2016-09-19' and '2016-09-27' 
group by SPARE_PART_ID,DATEADD(month, DATEDIFF(month, 0, CAST(created_dt AS date)), 0) 

이 쿼리에서 DATEADD 및 DATEDIFF 함수는 월이 존재하지 않는다고해서 작동하지 않습니다.누가이 포스트그레스에서이 SQL 쿼리를 작성하는데 누군가 도와 줄 수 있습니까?

감사합니다.

+0

** 오류 ** ERROR : 열이 "달" 라인이 존재하지 않습니다 SPARE_PART_ID, DATEADD (월, DAT ...^ 에 의해 2016년 9월 27일 '그룹을 ...'와 '** ************************** 오류 : "month"열이 없습니다. SQL 상태 : 42703 문자 : 207 –

+0

여기서 MS SQL과 Postgres 간의 변경 사항을 볼 수 있습니다 : http://www.sqlines.com/postgresql/how-to/dateadd http://www.sqlines.com/postgresql/howto/datediff – McNets

+0

[Postgres 매뉴얼에서] (http : // www. postgresql.org/docs/current/static/index.html)'dateadd()'또는'datediff()'를 찾았습니까 –

답변

0

DATEDIFF 함수가 Postgresql에 없으므로이 오류가 발생합니다.

대신 DATEDIFF를 사용하면 DATEDIFF는 PostgreSQL을에없는 설명 할 것입니다 위의 쿼리의 사용에 details이 쿼리를

SELECT (DATE_PART('year', '2012-01-01'::date) - DATE_PART('year', '2011-10-02'::date)) * 12 + 
       (DATE_PART('month', '2012-01-01'::date) - DATE_PART('month', '2011-10-02'::date)); 

확인을 사용 개월의 차이를 얻을 수 있습니다.

+0

당신은 내 쿼리에서 단 하나의 날짜가 있기 때문에 내 주어진 쿼리에서 위의 쿼리를 써주시겠습니까 ... 그 created_dt입니다 Logged –

관련 문제