我试图按天计算每位员工的数量。我从中拉出的桌子有长时间格式,小时/分钟/秒,并且认为这是我无法计算交易的原因b / c它们被视为长日期时间的个人记录b / c。
因此,在Select查询中,我尝试转换日期,但收到错误消息:无法在日期调用方法。
这是我的代码
SELECT ITR_EmployeeID,
CONVERT(DATE, ITR_TransDate, 1) AS TransDate,
COUNT(ITR_TransType) AS TC
FROM dbo.ITR
WHERE (ITR_EmployeeID IN (N'sweda', N'bakja', N'gebwa'))
AND (ITR_TransType LIKE N'PO Inspect')
AND (ITR_TransDate BETWEEN @FromDate AND @ToDate)
GROUP BY ITR_EmployeeID, ITR_TransDate
我要找的是按日期计算并按employeeID分组的Transtype
谢谢!
答案 0 :(得分:4)
您应该在查询窗口中执行此操作,而不是在某些视图或查询设计器中执行此操作。停止使用它们。请。
SELECT
ITR_EmployeeID,
CONVERT(DATE, ITR_TransDate) AS TransDate,
COUNT(ITR_TransType) AS TC
FROM dbo.ITR
WHERE (ITR_EmployeeID IN (N'sweda', N'bakja', N'gebwa'))
AND (ITR_TransType LIKE N'PO Inspect')
AND (ITR_TransDate >= @FromDate AND ITR_TransDate < DATEADD(DAY, 1, @ToDate))
GROUP BY ITR_EmployeeID, CONVERT(DATE, ITR_TransDate);
在SQL Server Management Studio中使用正确的结果获取此查询(再次,在查询窗口中,而不是有缺陷的可视化设计器)。 THEN 让它在您尝试实现它的任何应用程序代码中工作,并单独处理这些问题(或创建存储过程并避免您使用T-SQL查询文本时遇到的任何问题进入其他应用程序)。