2017-06-05 62 views
0

我研究过这个,但还没有找到任何有效的工作。我正在寻找返回多列的最大日期,其中一些具有空值。我的查询不会返回任何内容,而是每列都为空。我怎样才能得到实际的最高日期?提前致谢。SQL Server:最大日期查询只返回空值

create table Results 
(
    PatientName varchar(50), 
    Bordetella datetime, 
    [Canine Distemper] datetime, 
    Rabies datetime 
); 

select 
    PatientName, Bordetella, [Canine Distemper], Rabies 
from 
    (select 
     PatientName, 
     ReminderName, 
     DueDate 
    from 
     Results) d 
pivot 
(
    max(DueDate) 
    for ReminderName in (Bordetella, [Canine Distemper], Rabies) 
)piv 
; 
+0

你有一些示例数据吗?你也可以检查你的创建表语法。我不认为它与您的查询相匹配 – Tom

+0

您的主“SELECT”中有'rabies',但不在您的子查询中。 – JNevill

+0

@JNevill这很好 – Tom

回答

0

这应该是阅读:

create table Results 
(
    PatientName varchar(50) 
    ,ReminderName varchar(50) 
    ,DueDate datetime 
); 

select 
    PatientName 
    ,Bordetella 
    ,[Canine Distemper] 
    ,Rabies 
from (
    select 
     PatientName 
     ,ReminderName 
     ,DueDate 
    from Results 
) d pivot (
    max(DueDate) for ReminderName in (Bordetella, [Canine Distemper], Rabies) 
) pvt