運とガムテープで、従業員データを処理するためのデータベースを構築しました。月に一度、次のフィールドを含む大量の Excel スプレッドシートを受け取ります。
従業員番号、会計月、プロジェクトコード、労働時間
従業員番号や従業員の名前などをリンクするクエリ/テーブルを作成しました。すべては順調です。
私が抱えている問題は、おそらく、1 日のクラスがいくつかあることを除いて、プログラミングのバックグラウンドがないためです。勤務時間がないときに結果を返したいということです。
具体的な例として、Project Pasta というプロジェクトがあるとします。3 月には、Project Pasta で何時間も働いた人はいませんでした。ただし、各プロジェクトで作業したすべての時間のレポートを実行すると、結果のスプレッドシートの 2 列目に Project Past が引き続き「0」と表示されるようにします。
私はさまざまな形式の Left Outer Join を試しましたが、「Null」を返す方法がわかりません。この時点で、Access と自分自身に非常に腹を立てており、助けを求めて泣きたいと思いました。
誰の質問にも答えますが、助けるために何を知る必要があるかは 100% わかりません。Windows XP 上の Microsoft Access 2007 です。
ありがとうございました!:)
私が今持っているクエリは、マネージャーごとにグループ化しています:
SELECT timeworked.fiscalmonth,
timeworked.projectcode,
kronoscodes.projectname,
SUM(timeworked.hoursworked) AS SumOfHoursWorked,
employees.manager
FROM employees
INNER JOIN ((kronoscodes
INNER JOIN timeworked
ON kronoscodes.projectcode = timeworked.projectcode)
INNER JOIN months
ON timeworked.fiscalmonth = months.fiscalmonth)
ON employees.[employee id] = timeworked.employeeid
GROUP BY timeworked.fiscalmonth,
timeworked.projectcode,
kronoscodes.projectname,
employees.manager
HAVING (( ( timeworked.fiscalmonth ) LIKE "janfy13" ));
列名は次のとおりです。
EmployeeID,
ProjectCode,
ProjectName,
HoursWorked,
FiscalMonth
したがって、基本的には、インポートしたデータの「作業時間」の下に何もなかったとしても、すべてのプロジェクトコードが会計月ごとに戻ってくることを望んでいます。