以下のテーブルから値を取得するクエリが必要です
ロケーション 1 の合計 (合計日数) がロケーション 2 の合計 (合計日数) より大きいプロジェクトの総数をカウントするクエリが必要です。
私を助けてください
以下のテーブルから値を取得するクエリが必要です
ロケーション 1 の合計 (合計日数) がロケーション 2 の合計 (合計日数) より大きいプロジェクトの総数をカウントするクエリが必要です。
私を助けてください
これを試して:
DECLARE @a TABLE (
projectid INT,
totalday INT,
location INT
)
INSERT @a (projectid, totalday, location)
VALUES
(12, 20, 2),
(12, 10, 1),
(13, 2, 1)
;WITH CTE AS (
SELECT projectid, SUM(totalday) AS totalday, location FROM @a GROUP BY projectid, location
)
SELECT COUNT(*)
FROM CTE AS a1
INNER JOIN CTE AS a2
ON a1.projectid = a2.projectid
WHERE
a1.location = 1 AND a2.location = 2
AND a1.totalday > a2.totalday
データに一意のキー制約がないことを前提として、最初に場所ごとのプロジェクトごとの合計日数を CTE で合計しました。データが一意の場合は、この手順をスキップできます。
WITH ProjectDays AS
(
SELECT projectid, location, SUM(totalday) AS TotalDays
FROM Project p
GROUP BY projectid, location
)
SELECT p1.projectId as ProjectWithMoreTotalDaysInLoc1
FROM ProjectDays p1
INNER JOIN ProjectDays p2
ON p1.projectId = p2.projectId
WHERE
p1.location = 1 and p2.location = 2
and p1.TotalDays > p2.TotalDays;
(プロジェクト自体のリストではなく) プロジェクトの数を単純に取得するには、最終的なものを次のように切り替えますSELECT p1.projectId
。SELECT COUNT(*)