【发布时间】:2015-08-14 02:23:36
【问题描述】:
我使用的是 SQL Server 2010。
我在数据库中有一张表,记录如下:
Id | EmpName | JoinDate | ResignedDate
---+----------+-------------------------+--------------
1 | Govind | 2014-04-02 00:00:00.000 | 2014-04-02
2 | Aravind | 2014-04-05 00:00:00.000 | 2014-04-05
3 | Aravind | 2014-04-07 00:00:00.000 | 2014-04-10
4 | Aravind | 2014-04-10 00:00:00.000 | 2014-04-11
5 | Aravind | 2014-04-14 00:00:00.000 | 2014-04-16
现在,我想显示两个日期(joinDate、ResignDate)的差异以及该日期的不同可用计数
样本输出:
DateDifferent Count
------------- -----
0 2
1 1
2 1
3 1
这里显示我的示例查询,
entityManager.createNativeQuery(SELECT
DATEDIFF(day, e.joinedDate , e.resignedDate),
COUNT(DATEDIFF(day, e.joinedDate , e.resignedDate)))
FROM
Employee e
GROUP BY
DATEDIFF(e.joinedDate , e.resignedDate) ORDER BY (DATEDIFF(e.joinedDate , e.resignedDate)));
此查询适用于 mssql 查询浏览器,但是当我在 JPA Native Query(Java 代码)中使用该查询时,此查询不起作用
谁能帮帮我...
【问题讨论】:
-
这不是
java的问题。改为使用sql和sql-server标记。 -
能否请您详细说明在JPA 代码中此查询不起作用 的含义。是否给出错误或不正确的结果或根本没有结果?
-
添加你的 JPA 代码以及你得到错误的地方(如果有的话)
-
您在此处的查询不起作用。您在 group by 子句和 order by 子句中缺少 datediff 函数中的第一个参数。您在 count 函数中设置正确,所以我猜您在此处发布的 java 代码中使用了错误版本的查询,并且在 SSMS 中测试时使用了正确版本的查询。
-
SELECT DATEDIFF(day,JoinDate,ResignedDate), count(DATEDIFF(day,JoinDate,ResignedDate)) AS DateDifferent FROM Employee GROUP BY DATEDIFF(day,JoinDate,ResignedDate) 试试这个
标签: sql-server