我正在尝试编写一个查询来跟踪终端的使用情况。我想展示所有没有活动1年的终端

时间:2016-08-01 17:59:01

标签: sql sql-server sql-server-2012

我正在尝试编写一个查询来跟踪PC终端的使用情况。我想展示所有没有活动1年的PC终端。这是我尝试使用的查询,它返回0结果,即使我知道我有没有使用过的终端。日期为日期/时间格式(2016-06-22 14:38:12.000)

{{1}}

1 个答案:

答案 0 :(得分:2)

使用group bymax()

select t.Terminalid, t.TerminalName
from Terminal t Inner Join 
     Pos_Payments p 
     on p.TerminalId = t.TerminalId
group by t.Terminalid, t.TerminalName
having max(TransactionDateTime) < '2015-07-29'
order by t.TerminalID ;

请注意使用ISO标准YYYY-MM-DD日期格式。

如果您想根据当前日期进行此操作:

having max(TransactionDateTime) < dateadd(year, -1, getdate())

(你可能希望将其转换为date以摆脱时间组件。)