0
私は必要に応じて最初のクエリを実行しています。このクエリは、ユーザーのアクティビティレベルを対応するBusinessIdに集計します。最初のクエリに2番目のクエリを組み込むのに役立つ必要があります
レポートを作成するために、グループ化された週とBusinessIdごとにアクティビティレベルが0以上のUserIdの数を取得する新しい列を作成する必要がありました。 2番目のクエリは私に正しい値を与えます(マージ後に必要以上にデータポイントがあるかもしれませんが)が、これを最初のクエリにマージするのは難しいです。
これはおそらくかなり簡単ですが、他の質問のサンプルからはわかりません。どんな助けもありがとうございます。
/* First Query */
SET DATEFIRST 2;
SELECT
SUM(
fua.[RisksAffected]
+fua.[IssuesAffected]
+fua.[ChangesAffected]) AS RIC
,SUM(
fua.[ProjectsCreated]
+fua.[ProjectsAffected]) AS Projects
,CASE
WHEN SUM(fua.[ProjectsCreated]) >0
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT)
END AS ProjectCreated
,SUM(fua.[TimesheetsCreated]) AS Timesheets
,SUM(fua.[ReportsAffected]) AS Reports
,SUM(fua.[FilesAffected]) AS Files
,ud.[BusinessId]
,COUNT (DISTINCT fua.UserId) AS [UserCount]
,DateAdd(day, -1 * datepart(dw,fua.[QueryDate]),fua.[QueryDate]) AS [ActivityDate]
FROM [client_projectmanager].[whs].[FactUserActivity] fua
Left Join [client_projectmanager].[whs].[DimUserDataV2] ud
ON
fua.[UserId] = ud.[UserId]
GROUP BY
DateAdd(day, -1 * datepart(dw,fua.[QueryDate]),fua.[QueryDate]),ud.[BusinessId]
/* Second Query */
SET DATEFIRST 2;
SELECT
count (distinct sela.UserId)
,sela.BusinessId
,DateAdd(day, -1 * datepart(dw,sela.[Date]),sela.Date)
FROM
(SELECT
fua.UserId
,ud.BusinessId
,DateAdd(day, -1 * datepart(dw,fua.[QueryDate]),fua.[QueryDate]) AS [Date]
,SUM(
fua.[RisksAffected]
+fua.[IssuesAffected]
+fua.[ChangesAffected]
+fua.[ProjectsCreated]
+[ProjectsAffected]) AS Acttotal
FROM [client_projectmanager].[whs].[FactUserActivity] fua
Left Join [client_projectmanager].[whs].[DimUserDataV2] ud
ON
fua.[UserId] = ud.[UserId]
GROUP BY
DateAdd(day, -1 * datepart(dw,fua.[QueryDate]),fua.[QueryDate])
,fua.[UserId]
,ud.BusinessId
HAVING
SUM(fua.[RisksAffected]
+fua.[IssuesAffected]
+fua.[ChangesAffected]
+fua.[ProjectsCreated]
+fua.[ProjectsAffected])
>0) sela
GROUP BY
DateAdd(day, -1 * datepart(dw,sela.[Date]),sela.Date)
,sela.BusinessId
ORDER BY DateAdd(day, -1 * datepart(dw,sela.[Date]),sela.Date)
別名列を追加する必要があると仮定すると提案し、それは動作するようです。有難うございます!もっと効率的なら、私は他の方法にもオープンです。 SQLは私の主な焦点ではないので、私はこれについてかなり勉強しています。私はいくつかのヌル値を持っているので、私はnull値のために0を返すためにCASEを使いました。 – Terry