そのため.... コンテストに関連する 3 つの異なるテーブルがあり、DB は各コンテストで獲得したポイント数を追跡します。コンテスト 1、2、および 3。ユーザーが何かを達成するたびに、そのユーザーの新しい行が追加ポイントとともに作成されます。したがって、ユーザーが受け取ったすべてのポイントを計算するために、select sum を使用します
SELECT userID, SUM(amount1) as "Contest 1 Points"
FROM [Company].[dbo].[Contest1]
WHERE userid not in (0,1)
GROUP BY userId
ORDER BY userid
あと 2 つのコンテストがあるので、それぞれについてもクエリを実行します...
SELECT userId, SUM(amount2)/.65 AS "Category 2 Points"
FROM [Company].[dbo].[Contest2]
WHERE dateGiven >=201301 AND dateGiven <= 201305
GROUP BY userId
ORDER BY userid
SELECT userid, SUM(amount3) AS "Category 3 Points"
FROM [Company].[dbo].[Contest3]
where userid not in (1,2)
GROUP BY userid
ORDER BY userid
基本的に、各ユーザーが各コンテストから受け取るすべてのポイントを、基本的に結果を示す 1 つの列に合計する必要があります USERID, TOTAL OF TOTALS(Contest1 + Contest2 + Contest3)
または、少なくとも次のようにします。
ユーザー、コンテスト1合計、コンテスト2合計、コンテスト3合計
これまでに行った方法は、これらの結果をそれぞれ Excel にコピー アンド ペーストしてから、VLOOKUP を使用してそれらを相互に照合することでした。私はSQLにかなり慣れていないので、ユーザーIDを一致させるために参加してONを使用しようとしましたが、構文に問題があり、クエリのためにすべてがプラグインされていることを理解しています。