【发布时间】:2018-09-20 14:56:59
【问题描述】:
我有两张桌子:
客户
ID NAME
001 John
002 Sara
CLIENT_STATUS
CLIENT_ID STATUS DATE
001 3 2018-01-02
001 2 2018-01-04
002 2 2018-01-02
002 1 2018-01-03
我想按status = 1 过滤,我只想要指定时间范围内的最近日期。
到目前为止我有这个:
DECLARE
@StartDate DATE,
@EndDate DATE
SET @StartDate = '2016-07-01'
SET @EndDate = '2018-06-30'
SELECT
c.NAME
, c.ID
, cs.STATUS
FROM CLIENT c
LEFT JOIN (
SELECT cs.CLIENT_ID, cs.DATE
FROM CLIENT_STATUS
WHERE STATUS = 1 AND h.DATE BETWEEN @StartDate AND @EndDate
) AS hst ON hst.CLIENT_ID = c.ID
只有不按最近日期订购。
请注意,这是更大查询的一部分。
【问题讨论】:
-
“我只想要状态表 = 1 并且我想要指定日期范围内的最新日期” -- 这没有意义对我来说,您能否将您想要的输出添加到您的问题中?
-
哇,我在说什么......语法A+......我会重写它
标签: sql sql-server tsql date