1

我管理一个州范围的应用程序并用于Tableau创建数据的可视化。

我的任务是创建一个可视化,显示联系人条目和今天(案例注释日期)之间经过了多少时间。我知道如何在案例注释表中隔离最大案例注释日期:

Select 
    [Case_Master_ID],
    [Case_Note_Date],
    [Case_Note_Category_Desc],
    [Case_Note_Summary_Narr]
From 
    buCase_Note 
Where 
    Case_Note_Date = (Select MAX(Case_Note_Date)
                      From buCase_Note)

此查询将向我显示从今天开始表中的最大案例说明。问题是我需要为所有参与者展示最大案例说明,而不仅仅是今天的参与者。我用来查看案例注释的原始查询是:

Select
    vc.[_Case Master ID],
    vc.[_Caseload Assignment Current],
    vc.[_Participant Name],
    vc.[Case Status],
    vc.[Reporting Structure Level 4],
    vc.[Reporting Structure Level 5],
    vc.[Application Date],
    vc.[Eligibility Date],
    vc.[Eligibility Determination Extension Date],
    vc.[Eligibility Extended To Date], 
    vc.[Days in Application],
    cn.[Case_Note_Date], 
    cn.[Case_Note_Category_Desc],
    cn.[Case_Note_Summary_Narr]
From  
    biVR_Cases vc
Left outer Join 
    buCase_Note cn ON cn.Case_Master_ID = vc.[_Case Master ID]

我需要保持biVR_Cases在左侧以显示所有开放的客户。然后我需要加入案例记录表,对于每个参与者,我想显示他们的最大案例记录日期。当我将其添加到上述查询的末尾时:

Where cn.[Case_Note_Date] = (
    Select
        MAX(cn.Case_Note_Date)
    From buCase_Note)

我收到以下错误是 SSMS 2012:

聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且被聚合的列是外部引用。

我希望bi在成功加入案例注释表的同时保留左侧的表格,并且只为每位参与者带来最新的案例注释。

添加详细信息:当然,这是我在运行以下查询时获得的数据示例:

Select
 vc.[_Case Master ID],
 vc.[_Caseload Assignment Current],
 vc.[_Participant Name],
cn.[Case_Note_Date],
From  biVR_Cases vc
LEFT outer JOIN buCase_Note cn ON vc.[_Case Master ID] = cn.Case_Master_ID

_Caseload Assignment 当前测试参与者姓名 Casenote Date 测试顾问参与者 A 2010 年 9 月 29 日 2010 年 9 月 23 日 2010 年 8 月 30 日 2010 年 6 月 30 日 2010 年 6 月 1 日

bi 表包含参与者信息,如姓名、应用程序、案例主 ID 等。casenote 表包含案例主 ID 以及连接。它还包含每个条目的创建日期。所以对于上面的数据集,我试图只为每个参与者带来最新的案例笔记。我在上面的示例中只包括了 1 个,但我们有超过 15,000 个。每个参与者都会有许多案例笔记。我试图抓住最上面的案例笔记,这样我就可以计算每个参与者最近的案例笔记和今天之间的日期差异。当我添加:

Where cn.[Case_Note_Date] = (Select
top 1 [Case_Note_Date]
From buCase_Note
Order by 1 DESC))
 OR 
Where Case_Note_Date=(
Select
MAX(Case_Note_Date)
From buCase_Note)

它仅显示今天创建案例笔记的参与者的顶部或最大案例笔记。我不需要在 casenote 表中显示最大 casenote,而是需要每个参与者的最大 casenote。我希望这更有意义。

4

2 回答 2

1

您可以尝试我在下面包含的内容。没有实际数据,我不知道它是否对您足够有效,但它应该可以工作。但是,如果您得到更好的答案,我很想知道。

Select vc.[_Case Master ID],
 vc.[_Caseload Assignment Current],
 vc.[_Participant Name],
 vc.[Case Status],
 vc.[Reporting Structure Level 4],
 vc.[Reporting Structure Level 5],
 vc.[Application Date],
 vc.[Eligibility Date],
 vc.[Eligibility Determination Extension Date],
 vc.[Eligibility Extended To Date], 
 vc.[Days in Application],
 cn.[Case_Note_Date], 
 cn.[Case_Note_Category_Desc],
 cn.[Case_Note_Summary_Narr]
From  biVR_Cases vc
LEFT outer JOIN 
   (SELECT Case_Master_ID, Case_Note_Date, Case_Note_Category_Desc, Case_Note_Summar_Narr, 
           ROW_NUMBER() OVER (PARTITION BY Case_Master_ID ORDER BY Case_Note_Date DESC) as RowNum FROM buCase_Note) cn 
   ON cn.Case_Master_ID = vc.[_Case Master ID] AND cn.RowNum=1
于 2016-05-06T21:38:00.990 回答
0

cn.从行中删除MAX(cn.Case_Note_Date)。您不想从主查询中引用列。您只想从中选择Case_Note_Date一个buCase_Note

所以整个查询将是

Select
 vc.[_Case Master ID],
 vc.[_Caseload Assignment Current],
 vc.[_Participant Name],
 vc.[Case Status],
 vc.[Reporting Structure Level 4],
 vc.[Reporting Structure Level 5],
 vc.[Application Date],
 vc.[Eligibility Date],
 vc.[Eligibility Determination Extension Date],
 vc.[Eligibility Extended To Date], 
 vc.[Days in Application],
 cn.[Case_Note_Date], 
 cn.[Case_Note_Category_Desc],
 cn.[Case_Note_Summary_Narr]
From  biVR_Cases vc
LEFT outer JOIN buCase_Note cn ON cn.Case_Master_ID = vc.[_Case Master ID]
Where cn.[Case_Note_Date] = (Select
MAX(Case_Note_Date)
From buCase_Note)
于 2016-05-06T19:57:29.857 回答