0

現在、次のようなテーブル構造があります(一部の詳細は省略されています):

  ColumnName         || Type
  Date_Of_Job           DateTime
  Reparied_Service      Boolean 
  Disconnect_Service    Boolean 
  Relayed_Service       Boolean 
  Reparied_Stopcock     Boolean 
  Replaced_Stopcock     Boolean 
  TPFNR_Repaired        Boolean 
  TPFNR_Replaced        Boolean 
  TPFNR_Capped          Boolean 
  Poor_Pressure_Tested  Boolean 
  Flow_Test             Boolean 
  Meter_replaced        Boolean 

表示できるようにしたいのは、月 ( Date_Of_Job ) を列ヘッダーとして、さまざまな種類のジョブを行ヘッダーとして、その月の各ジョブの数を含むクロス集計クエリです。

だから、このようなもの:

==Job Type===========01=====02=====03 etc
Reparied_Service     5      20     30
Disconnect_Service   15     45      9
Relayed_Service      18      7      6
Reparied_Stopcock    18 
Replaced_Stopcock    20 
 etc

私が抱えている問題は、各レコードに複数のジョブタイプを含めることができるため、各ジョブタイプがブール列として保存されることです。たとえば、Repared_Stopcockジョブと 1 つのレコードのFlow_Testをログに記録できます。

アクセスまたはMS SQLでこれを行う方法を知っている人はいますか?どちらでもかまいません。

4

1 に答える 1

1

Date_Of_Job 値が同じ年のものであると仮定すると、UNION サブセレクトに基づいて Access クロス集計クエリを作成できます。

TRANSFORM Count(q.[job_type]) AS num_jobs
SELECT q.[job_type]
FROM (
    SELECT
        Month(Date_Of_Job) AS job_month
        , "Reparied_Service" AS job_type
    FROM Jobs
    WHERE Reparied_Service=True
    UNION ALL
    SELECT
        Month(Date_Of_Job) AS job_month
        , "Disconnect_Service" AS job_type
    FROM Jobs
    WHERE Disconnect_Service=True
    ) AS q
GROUP BY q.[job_type]
PIVOT q.[job_month];
于 2009-09-07T08:34:23.657 に答える