私のMySQLデータベースは、次の列見出しを持っていますMySQLのクエリとピボットテーブル
month, typeOfWork, totalHours
は私がtypeOfWork、月に応じて結果を表示するに興味を持っています。たとえば、すべての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月ROLLUPに至るまで」)最後の行を指定する構文エラーを取得しています。私の混乱は、私がスクリプト内の別の作業ピボットテーブルからこのテーブルを変更したという事実から来ています。私はその違いが私の2つの要件にあると思う(sumはtotalHours、monthは列名に等しく、typeOfWorkはtypeOfWorkと同じ列)。私のIF文がAND節を必要とするかどうか疑問に思っていますか?
誰でもこのピボットテーブルで正しい方向に向けることができますか?大変感謝しています。ありがとうございました!
あなたは私のヒーローです。これはトリックでした!私はそれを推測したことはありませんでした。とても感謝しています。 :) – Andrew