Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何从SQL Server中的同一个表中删除最小日期_Sql Server - Fatal编程技术网

Sql server 如何从SQL Server中的同一个表中删除最小日期

Sql server 如何从SQL Server中的同一个表中删除最小日期,sql-server,Sql Server,下面我有一些简单的记录 CREATE TABLE TEMPS ( ID INT, ENTRY_DT DATETIME, BIRTH_DT DATETIME, NAMES VARCHAR (25) ) INSERT INTO TEMPS VALUES ('123', '6/10/2015', '2/6/2018', 'JOHN'), ('123', '2/4/2018', '2/6/2018', 'SMITH'), ('123', '

下面我有一些简单的记录

CREATE TABLE TEMPS
(
    ID INT,
    ENTRY_DT DATETIME,
    BIRTH_DT DATETIME,
    NAMES VARCHAR (25)
)

INSERT INTO TEMPS 
VALUES ('123', '6/10/2015', '2/6/2018', 'JOHN'),
       ('123', '2/4/2018', '2/6/2018', 'SMITH'),
       ('123', '2/4/2018', '2/6/2018', 'DOE')
它回来了

ID  Entry_Date  Birth_Date  Name
-----------------------------------
123 6/10/2015   2/6/2018    John
123 2/4/2018    2/6/2018    Smith
123 2/4/2018    2/6/2018    Doe
我正在尝试查找记录,其中Entry_date列中的一个或多个日期与Birth_date列的距离较近(在3-6个月范围内)。例如,在此TEMPs表中,有两条记录的输入日期为2018年4月2日,与2018年6月2日的出生日期相近。以下是我尝试的两个步骤:

步骤1:

SELECT
    id, 
    MIN(entry_dt) AS entry_dt
INTO
    test
FROM
    temps
GROUP BY 
    id
步骤2:

SELECT * 
FROM temps a 
INNER JOIN test b ON a.id = b.id
WHERE a.entry_dt > b.entry_dt

与临时表相比,有什么更有效的方法可以提取更多的记录?过滤出生日期前3-6个月内的记录的最佳方法是什么?

无需使用insert data to test
table
。您可以在
where
子句中添加条件

where birth_dt between entry_dt and dateadd(month,3,entry_dt)
查询

select * 
from TEMPS
where birth_dt between entry_dt and dateadd(month,3,entry_dt)
输出

2015年10月6日是10月6日还是6月10日?我看不到您在这里删除任何内容,只是选择。请用预期结果澄清您的问题。你说的“比临时表多拉记录”是什么意思?嗨,乔。请不要在你的帖子上签名好吗?我想我以前对你的材料做过这样的编辑。我们不在这里签名-个人资料卡被认为已经足够了。