2017-06-05 105 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