2014-07-19 2 views
0

제품 주문과 주문 날짜가있는 테이블이 있습니다. 날짜가 DATE()를 사용하여 테이블에 삽입되었습니다. 고객은 월별, 분기 별, 연간 또는 합계별로보기를 선택하여 이러한 주문에 대한 통계를 얻을 수 있습니다. 처음부터 모든 주문을 검색해야하므로 시작일이없고 종료일 (오늘) 만 정렬해야합니다. 그들이 분기를 선택하면mysql에서 분기별로 그룹화하고 PHP에서 검색하는 방법

그래서, 다음 분기, 2006 년 모든 주문을 표시해야하고 PHP와, 정말처럼 표시해야합니다 (데이터베이스는 2006 년 시작) :

분기 1 - 2006


날짜, 제품 1, 수량, 가격
날짜, 제품 2, 수량, 가격

분기 2-2006


날짜, 제품 1, 수량, 가격
날짜, 제품 2, 수량, 가격

.
.
.

분기 1-2014


날짜, 제품 1, 수량, 가격
날짜, 제품 2, 수량, 가격

그런 식으로 정렬하는 방법이 있나요? 수량, 가격 및 제품 이름을 직접 추가 할 수 있습니다. DATE()를 사용하여 데이터베이스의 필드가 채워진 날짜를 정렬하는 방법을 알아내는 데 관심이 있습니다. 나는 그 질문이 충분히 분명하기를 희망한다. 고맙습니다.

+0

에 http : // 유래를 .com/questions/13863734/sql-how-group-by-quarter-quarter-and-year-with-date-field 이 게시물에서 아이디어를 얻어야합니다. – Gavin

답변

0

MySQL의 QUARTER (날짜) 함수를 사용해 보셨습니까? 검색 중에 정렬하지 않고 검색 후 정렬하려면 출력에 열을 추가하고이를 QUARTER (날짜)로 채운 다음 해당 열을 기준으로 정렬하십시오.

0

첫 출발점 다음

select YEAR(date_column) as min_year, QUARTER(date_column) as min_quarter from table order by date_column limit 1; 

해당 인덱스에서 시작하여 PHP에서 인쇄 할 수 파악하는 것이이 작업을 수행하는 쉬운 방법 :

for($i=$min_year; $i <= date('Y'); $i++){ 
    for($j=$min_quarter; $j<=ceiling(date('m')); $j++){ 
     echo "Quarter $j - $i"; 
     mysql_query("SELECT date, product, quantity, price FROM table WHERE QUARTER(date)=$j and YEAR(date)=$i ORDER BY date"); 
     //print your rows 
     echo "\n"; 
    } 
} 
관련 문제