我有一个复杂的查询,从几个字段中获取求和,除了一个子选择(有几个(之外,所有字段似乎都很好。我有一个WHERE子句,它使用table1.field=table2.field AND CONVERT(DATE,日期/时间字段(BETWEEN'firstDate'AND'lastDate'作为合计。它在没有"AS total"的情况下运行得很好,但当我在包含"AS totals"的条件下运行它时,我的结果不会进入"total"。不知道为什么我会以这样的方式得到结果,而不是另一种方式。由于AS似乎没有得到返回的值,我在VS中得到"total"的DBNull异常。
这是一个SQL Sever数据库。
SELECT
SUM(DATEDIFF(SECOND, a.intime, a.outtime))
FROM
table1 a, table2 a b
WHERE
a.empKey = b.employeeKey
AND CONVERT(DATE, outtime) BETWEEN '2018/07/12 4:00 AM' AND '2018/07/12 5:00 PM' AS total
我相信你想要:
SELECT SUM(DATEDIFF(SECOND, a.intime, a.outtime)) as total
FROM table1 a JOIN
table2 b
ON a.empKey = b.employeeKey
WHERE CONVERT(DATE, outtime) BETWEEN '2018/07/12 4:00 AM' AND '2018/07/12 5:00 PM' ;