我試圖讓1月至11月員工的總工作時間按縣劃分。我只對在過去60天內任何地方工作的員工感興趣。當按多列分組時,MySQL查詢隱藏結果
當我運行此查詢:
SELECT DISTINCT(a.empid) AS EMPL_ID, a.cnty AS COUNTY, SUM(a.hours) AS HRS
FROM timesheet_lines AS a
WHERE a.date >= '2014-1-1'
AND a.date <= '2014-11-30'
GROUP BY EMPL_ID
HAVING MAX(a.date) > '2014-10-18';
我得到的時間正確的號碼,但它不是由縣級細分。
當我由縣添加分組像這樣的查詢:
SELECT DISTINCT(a.empid) AS EMPL_ID, a.cnty AS COUNTY, SUM(a.hours) AS HRS
FROM timesheet_lines AS a
WHERE a.date >= '2014-1-1'
AND a.date <= '2014-11-30'
GROUP BY EMPL_ID, COUNTY
HAVING MAX(a.date) > '2014-10-18';
它打破下來的縣,但它消除在這些縣工作過的員工縣和時間誰沒有在那個特定的縣工作在過去的60天。
如何按縣添加故障分析,仍然可以獲得所有工作時間?
這裏是我想拉一個員工數據的一個例子:
EMPL_ID COUNTY HRS
------- ------ ---
5461 ONTARIO 105
5461 WAYNE 1182
5461 YATES 24
這裏是我所得到的,當我組僅EMPL_ID:
EMPL_ID COUNTY HRS
------- ------ ---
5461 ONTARIO 1311
具有正確總小時,但它沒有妥善分解由縣。
這裏是我所得到的,當我通過EMPL_ID 和縣組:
EMPL_ID COUNTY HRS
------- ------ ---
5461 ONTARIO 105
5461 WAYNE 1182
現在由縣壞了,但是卻忽略了YATES縣我想是因爲員工沒有在YATES縣工作最近60天。
試着拿出有條款。該行很可能在那裏,但由於分組它正在改變max()值,因此通過具有過濾器而被丟棄。 –