Sql 如何显示共享相同日期(不包括小时和分钟)的记录,以及如何将表与自身进行比较
在下表中,我试图通过使用self-join将其与自身进行比较,以便能够检索共享相同RegCode和不同AdmissionID且具有相同admissionate(不包括小时和分钟)的记录Sql 如何显示共享相同日期(不包括小时和分钟)的记录,以及如何将表与自身进行比较,sql,Sql,在下表中,我试图通过使用self-join将其与自身进行比较,以便能够检索共享相同RegCode和不同AdmissionID且具有相同admissionate(不包括小时和分钟)的记录 AdmitDate AdmissionID RegCode FirsName 6/16/2015 11:15 1370 JB01.000000001 Eric 6/16/2015 15:24 1393 JB01.000000001 Eric 6/1
AdmitDate AdmissionID RegCode FirsName
6/16/2015 11:15 1370 JB01.000000001 Eric
6/16/2015 15:24 1393 JB01.000000001 Eric
6/16/2015 18:17 1400 JB01.000000001 Eric
6/17/2015 10:55 1445 JB01.000008751 Sara
7/15/2015 15:51 2726 JB01.000000879 ellen
7/20/2015 10:30 2781 JB01.00000147 maison
8/18/2015 15:07 4143 JB01.00000879 jeffery
12/23/2015 10:15 12341 JB01.00000850 jordan
5/31/2016 13:28 25406 JB01.00000545 leen
2/16/2017 9:49 45999 JB01.00000548 joseph
例如,它应该检索Eric,因为他有多个记录具有相同的许可日期,忽略小时和分钟以及RegCode,但不同的许可ID
AdmitDate AdmissionID RegCode FirstName
6/16/2015 11:15 1370 JB01.000000001 Eric
6/16/2015 15:24 1393 JB01.000000001 Eric
6/16/2015 18:17 1400 JB01.000000001 Eric
所以基本上,我试图检索具有多个相同日期的同一RegCode的AdmissionID的记录,
我遇到了AdmitDate的问题,因为它还捕获小时和分钟,并且在使用别名进行子查询时,使用Datepart分离AdmitDate,我无法在select and group by中使用别名
我希望我简单地解释一下,因为我对SQL不太熟悉。如果您使用SQL Server,我们将非常感谢您的帮助:
select *,
count(AdmissionID) over(partitionBy AdmitDateDate, RegCode, FirstName) as [count]
from
(select *, cast(AdmitDate as Date) [AdmitDateDate] from <yourTable>) o
如果使用SQL Server:
select *,
count(AdmissionID) over(partitionBy AdmitDateDate, RegCode, FirstName) as [count]
from
(select *, cast(AdmitDate as Date) [AdmitDateDate] from <yourTable>) o
使用SQL Server
SELECT DISTINCT p.*
FROM <yourtable> AS p
INNER JOIN <yourtable> AS c ON c.RegCode = p.RegCode AND c.AdmissionID <> p.AdmissionID AND CAST(c.AdmitDate AS date) = CAST(p.AdmitDate AS date)
使用SQL Server
SELECT DISTINCT p.*
FROM <yourtable> AS p
INNER JOIN <yourtable> AS c ON c.RegCode = p.RegCode AND c.AdmissionID <> p.AdmissionID AND CAST(c.AdmitDate AS date) = CAST(p.AdmitDate AS date)
用你正在使用的数据库标记你的问题。用你正在使用的数据库标记你的问题。