私は州全体のアプリケーションを管理し、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 では次のエラーが表示されます。
集計は、HAVING 句または選択リストに含まれるサブクエリ内になく、集計される列が外部参照でない限り、WHERE 句に表示されない場合があります。
左側のテーブルを維持し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
_ ケースロード 割り当て 現在のテスト参加者 名前 ケースノート 日付 テスト カウンセラー 参加者 A 2010 年 9 月 29 日 2010 年 9 月 23 日 2010 年 8 月 30 日 2010 年 6 月 30 日
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)
今日作成されたケースノートを持つ参加者の最上位または最大のケースノートのみが表示されます。ケースノート テーブルに最大ケースノートを表示する代わりに、参加者ごとの最大ケースノートが必要です。それがより理にかなっていることを願っています。