내 MySQL 데이터베이스가 다음과 같은 열 머리글 :MySQL의 쿼리 및 피벗 테이블
month, typeOfWork, totalHours
나는 typeOfWork 달에 따라 결과를 표시에 관심이 있어요. 예를 들어 모든 typeOfWork 항목은 왼쪽의 첫 번째 열에 표시되고 각 필드는 각 열의 지정된 달에 특정 유형의 작업을 합계합니다. 따라서, 내 SQL 피벗 테이블 문은 현재 :
SELECT
IFNULL(typeOfWork, 'Total') AS TypeOfWork,
SUM(IF(month='JAN',totalHours,NULL)) AS JAN,
SUM(IF(month='FEB',totalHours,NULL)) AS FEB,
SUM(IF(month='MAR',totalHours,NULL)) AS MAR,
SUM(IF(month='APR',totalHours,NULL)) AS APR,
SUM(IF(month='MAY',totalHours,NULL)) AS MAY,
SUM(IF(month='JUN',totalHours,NULL)) AS JUN,
SUM(IF(month='JUL',totalHours,NULL)) AS JUL,
SUM(IF(month='AUG',totalHours,NULL)) AS AUG,
SUM(IF(month='SEP',totalHours,NULL)) AS SEP,
SUM(IF(month='OCT',totalHours,NULL)) AS OCT,
SUM(IF(month='NOV',totalHours,NULL)) AS NOV,
SUM(IF(month='DEC',totalHours,NULL)) AS DEC
FROM $databasetable GROUP BY typeOfWork
WITH ROLLUP
내가 현재 ('롤업을 통해 12월'에서) 마지막 줄을 지정하는 구문 오류를 받고 있어요. 내 혼란은 스크립트에서 다른 작업 피벗 테이블의이 테이블을 간단하게 적용한 사실에서 비롯된 것입니다. 나는 그 차이가 내 두 가지 요구 사항에있을 것이라고 생각한다. (sum totalHours 여기서 month는 열 이름과 같고 typeOfWork는 typeOfWork와 첫 번째 열을 같음). IF 문에 AND 절이 필요한지 궁금합니다.
아무도 나를이 피벗 테이블로 올바른 방향으로 가리킬 수 있습니까? 대단히 감사하겠습니다. 고맙습니다!
당신은 제 영웅입니다. 이것은 트릭을했다! 나는 결코 그것을 짐작하지 않고 있었을 것이다. 그래서 매우 감사합니다. :) – Andrew