在以下查询方面需要帮助
此刻显示按年度季度分组的具有“工作时间”的用户列表。我还想按工作天数求和 - 问题是每天可以有不止一行,所以“onsitedate”的总和不正确。我不能按“天”分组,因为结果需要按年度季度显示。
sql
SELECT
username,
DatePart ('q', [onsitedate]) AS [qtr],
SUM(onsitehours),
SUM(onsitedate)
FROM
clocktable
WHERE onsitedate BETWEEN #2013-01-01# AND #2013-12-31#
GROUP BY username, DatePart('q',[onsitedate])
ORDER BY username, DatePart('q',[onsitedate])
让我知道是否需要更多信息和 TQ
更新
如前所述,我应该在 sitedate 行(错字)上使用 COUNT
SELECT
username,
DatePart ('q', [onsitedate]) AS [qtr],
SUM(onsitehours),
**COUNT(onsitedate)**
FROM
但是,如果同一日期存在两条记录,那么我希望计数为 1
示例数据如下:
username onsitedate onsitehours
-----------------------------------------------
bob 01/09/2013 10
bob 01/09/2013 2
fred 01/09/2013 12
jim 01/09/2013 10
jim 02/09/2013 5
所需资源
username qtr onsitedate_count onsitehours_sum
---------------------------------------------------------
bob 3 1 12
fred 3 1 12
jim 3 2 15
如您所见 - 尽管在 2013 年 1 月 9 日有两条 bob 记录,但 onsitedate_count 仍然为 1,因为它们是同一天
也尝试跟随,以便首先将日子分组,但没有快乐
GROUP BY tech_name, DatePart('d',[on_site_date]), DatePart('q',[on_site_date])