小编Col*_*ett的帖子

如何获得具有上限的 MAX()?

我正在使用下面的查询来生成报告。我需要生成报告,因此它仅适用于最大时间戳(例如直到昨天,2016-08-02)。为此,我需要修改查询的第二行,以便我不再获得eventsink.blueboxevent.created大于昨天限制的值。

例如,如果我在下面的示例数据上运行报告,要求只查看截至昨天 (2016-08-02) 的时间范围,我希望看到如下记录:

想要的结果

device1 | 2016-08-02
Run Code Online (Sandbox Code Playgroud)

样本数据

DeviceID | eventsink.blueboxevent.created
device1 | 2016-08-03
device1 | 2016-08-02
device1 | 2016-08-01
Run Code Online (Sandbox Code Playgroud)

要修改的当前查询

SELECT eventsink.blueboxevent.deviceid     AS 'Device ID', 
       Max(eventsink.blueboxevent.created) AS 'Last Connection', 
       provisioned, 
       Max(softwareversion)                AS 'S/W Ver.', 
       buildingname                        AS 'Name', 
       buildingaddr1                       AS 'Address', 
       buildingcity                        AS 'City', 
       buildingstate                       AS 'State', 
       zipcode                             AS 'Zip Code', 
       countrycode                         AS 'Cnty' 
FROM   eventsink.blueboxevent 
       JOIN md.elevator 
         ON md.elevator.deviceid = eventsink.blueboxevent.deviceid 
       JOIN eventsink.blueboxmasterdataevent 
         ON eventsink.blueboxmasterdataevent.deviceid = 
            eventsink.blueboxevent.deviceid 
       JOIN (SELECT Min(eventenqueuedutctime) AS 'Provisioned', 
                    deviceid 
             FROM   eventsink.blueboxevent 
             WHERE …
Run Code Online (Sandbox Code Playgroud)

sql-server

2
推荐指数
1
解决办法
794
查看次数

标签 统计

sql-server ×1