【发布时间】:2015-01-30 08:13:07
【问题描述】:
我有一个有 2 列的表格:
date | points
数据:
2015-01-30 00:00:00.000 | 1.2
2015-01-29 00:00:00.000 | 2
2015-01-30 00:00:00.000 | 5
2015-01-27 00:00:00.000 | 7
我想根据date 对point 列求和。因此,如果我使用2015-01-30 00:00:00.000 过滤日期,那么结果将如下所示:
2015-01-30 00:00:00.000 | 7.5
上面的记录应该是这个样子。
我有一个查询,但它返回了
将数据类型 varchar 转换为 float 时出错。
我的 SQL 代码。
SELECT gpsdate, totkm
FROM (
SELECT gpsdate,
cast(cast(cast((SUM(KMRUN)) as float) as int) as nvarchar(50)) as totkm
,
RANK() OVER(PARTITION BY gpsdate
ORDER BY SUM(KMRUN) DESC) as R
FROM view_tracklist_report
GROUP BY gpsdate) as InnerQuery
WHERE InnerQuery.R = 1
【问题讨论】:
-
points列的类型是什么?是数字还是 varchar ?
标签: sql-server date datetime casting