2014-11-07 3 views
0

나의 목표는 MySQL을 사용하여 현재 날짜의 지난 달 이름 6 개를 나열하는 것입니다. 난 다음 쿼리list 지난 달의 이름 (현재 날짜) MySQL

MySQL= "SELECT MONTHNAME((now() - INTERVAL 6 MONTH)) as Previous_month FROM" 
     " search.search_option where file_no='1'" 

를 사용하여 특정 달 전에 특정 monthNAme을 찾을 수 있어요하지만 내가 어떻게 6 이전 monthNames을 나열 할 수 있습니다.

+0

(이중에서 시도) 또는 지난 6 개월을 기준으로 데이터를 그룹화 하시겠습니까? – Logan

+0

데이터를 추출 할 필요가없고 월 이름 만 표시하려는 경우 –

+0

당신은 현재 날짜부터 원하는 경우 다음 쿼리에서 LAST_DAY()를 사용하는 이유는 무엇입니까? –

답변

0

확실하지 왜 MySQL의에서이 작업을 수행 할 필요가 있지만, 여기 가능한 옵션 중 하나입니다 수행

SELECT MONTHNAME(now()) 
UNION 
SELECT MONTHNAME(now() - INTERVAL 1 MONTH) 
UNION 
SELECT MONTHNAME(now() - INTERVAL 2 MONTH) 
UNION 
SELECT MONTHNAME(now() - INTERVAL 3 MONTH) 
UNION 
SELECT MONTHNAME(now() - INTERVAL 4 MONTH) 
UNION 
SELECT MONTHNAME(now() - INTERVAL 5 MONTH) 
+0

감사합니다. 예상대로 잘 작동합니다. +1 도움을 요청했습니다. –

+0

UNION! 왜 우리는 노동 조합이 필요한가? –

+0

@RishiVedpathak 귀하의 경우 출력이 단일 행에 있기 때문에. 하지만 OP는 단일 열을 원합니다 – Uriil

0

당신은 마지막 6 월 이름을 생성 할
SELECT CONCAT(MONTHNAME(NOW() - INTERVAL 5 MONTH),',', 
    MONTHNAME(NOW() - INTERVAL 4 MONTH),',',  
    MONTHNAME(NOW() - INTERVAL 3 MONTH),',', 
    MONTHNAME(NOW() - INTERVAL 2 MONTH),',', 
    MONTHNAME(NOW() - INTERVAL 1 MONTH),',', 
    MONTHNAME(NOW())) AS Previous_month; 
+0

Previous_month라는 제목의 단일 열에 이전 달 이름 6을 표시하려고합니다. 이렇게하면 여러 열이 생성되므로 공용이 필요합니다 –

+0

오답을 업데이트했습니다. union 대신 concat을 사용하십시오. –

관련 문제