Yesterday's Question (by Steve Jones): At Redgate, we sometimes owe each other beers for mistakes or insults rendered to another. I've got a table with a number of items being tracked. Since we need to settle up tonight, who is owed the most net beer (owed - owes)? WITH myBeers AS (SELECT OwedTo, OwedBy, EarnedDate, Beer FROM ( VALUES ('Bart','Steve', '2017-01-25', 4), ('Bart','Andrew', '2017-01-28', 2), ('Andrew','Rob', '2017-08-20', 1), ('Bart','Andrew', '2017-05-08', 2), ('Ally','Tony', '2017-02-05', 2), ('Tugberk','Dave', '2017-05-28', 2), ('Dave','Tugberk', '2017-06-17', 3), ('Bart','Steve', '2017-02-18', 4), ('Bart','Andrew', '2017-06-19', 2), ('Tugberk','Dave', '2017-08-17', 2), ('Tony','Bart', '2017-01-29', 3), ('Andrew','Rob', '2017-08-10', 1), ('Tugberk','Bart', '2017-04-12', 3), ('Bart','Steve', '2017-05-11', 4), ('Bart','Steve', '2017-03-28', 4), ('Andrew','Rob', '2017-02-06', 1), ('Tony','Bart', '2017-04-26', 3), ('Tugberk','Bart', '2017-03-01', 3), ('Rob','Ally', '2017-08-29', 1), ('Bart','Steve', '2017-03-02', 4), ('Rob','Ally', '2017-09-02', 1), ('Bart','Steve', '2017-03-09', 4), ('Ally','Tony', '2017-08-06', 3), ('Bart','Andrew', '2017-06-01', 2), ('Bart','Steve', '2017-05-12', 4), ('Andrew','Rob', '2017-06-02', 1), ('Dave','Tugberk', '2017-03-15', 3), ('Dave','Tugberk', '2017-04-11', 3), ('Tugberk','Bart', '2017-04-10', 3), ('Tugberk','Bart', '2017-06-29', 4), ('Dave','Rob', '2017-03-09', 1), ('Bart','Andrew', '2017-03-26', 2), ('Tony','Dave', '2017-04-11', 1), ('Bart','Steve', '2017-04-20', 4), ('Tugberk','Dave', '2017-02-10', 1), ('Bart','Andrew', '2017-08-27', 2), ('Rob','Tony', '2017-04-05', 3), ('Dave','Tugberk', '2017-04-15', 3), ('Andrew','Dave', '2017-02-03', 1), ('Tugberk','Bart', '2017-05-06', 4), ('Rob','Tony', '2017-07-27', 3), ('Bart','Andrew', '2017-07-16', 2), ('Bart','Steve', '2017-03-12', 4), ('Bart','Steve', '2017-06-06', 4), ('Andrew','Bart', '2017-06-30', 3), ('Dave','Rob', '2017-01-15', 1), ('Bart','Andrew', '2017-03-03', 2), ('Andrew','Dave', '2017-04-23', 1), ('Tugberk','Dave', '2017-04-24', 2), ('Steve','Tony', '2017-06-08', 2), ('Tugberk','Bart', '2017-02-02', 3), ('Tony','Bart', '2017-01-29', 3), ('Tony','Bart', '2017-03-30', 3), ('Bart','Steve', '2017-02-09', 4), ('Ally','Tony', '2017-06-09', 3), ('Tony','Bart', '2017-02-11', 3), ('Andrew','Rob', '2017-01-15', 1), ('Tugberk','Dave', '2017-03-14', 1), ('Rob','Tony', '2017-04-25', 3), ('Dave','Tugberk', '2017-02-01', 3), ('Tony','Bart', '2017-09-04', 4) ) a(OwedTo, OwedBy, EarnedDate, Beer) ) SELECT * FROM myBeers Answer: Bart Explanation: The net owed beer is: Ally: 6 Andrew: -6 Bart: 18 Dave: 6 Rob: 4 Steve: -42 Tony: 1 Tugberk: 13 Therefore, Bart is a happy man. » Discuss this question and answer on the forums |