【发布时间】:2016-02-28 15:41:50
【问题描述】:
我会尽量简化:
我有一个表格,可以记录用户(员工)正在做什么(可以是开始他的工作、注册新产品、交付产品和结束他的工作)。最常见的情况是当用户开始他的工作,在白天做他需要做的任何事情,然后在他开始的同一天结束他的工作,所以这些是现在对我很重要的信息(开始和结束)。
这个查询:
SELECT DISTINCT
DATEPART(DAY,TimeStamp) [Day],
DATEPART(MONTH,TimeStamp) [Month],
DATEPART(YEAR,TimeStamp) [Year],
login [USER],
CASE WHEN TipoOcorrencia = 'IniciarDia' THEN 'YES' END [Started],
CASE WHEN TipoOcorrencia = 'FinalizacaoDia' THEN 'YES' END [Ended]
FROM CHAMADO ch
WHERE
TimeStamp >= '20151001'
AND TipoOcorrencia = 'IniciarDia' OR TipoOcorrencia = 'FinalizacaoDia'
GROUP BY
DATEPART(DAY,TimeStamp),
DATEPART(MONTH,TimeStamp),
DATEPART(YEAR,TimeStamp),
login,
TipoOcorrencia
ORDER BY [USER], [Year],[Month],[Day]
返回类似这样的内容(但有更多用户):
您可以看到该用户在三个不同的日子(10 月 7 日、10 月 8 日和 10 月 9 日)的同一日期开始和结束了他的工作日。
显然我的问题是,尽管我非常努力,但仍无法使 PIVOT 工作。我需要帮助...
提前致谢!
【问题讨论】:
-
将您的案例陈述包装在 max 中,并在 Tipocorrencia 上摆脱 group by
标签: sql-server sql-server-2008 tsql sql-server-2005 sql-server-2012