SQL newb ie здесь, я пытаюсь распечатать таблицу с суммой заработной платы, марки и модели автомобиля для всех людей, владеющих определенной комбинацией марки / модели. На данный момент таблица выводит все значения марки и модели автомобиля, но столбец SumWage имеет значение NULL. SumWage должен возвращать общую сумму всех заработных плат людей, у которых есть комбинация марки / модели (мое выражение выбора находится полностью внизу кода)? Мы очень ценим все советы!
IF OBJECT_ID ('Person', 'U') IS NULL
BEGIN
CREATE TABLE Person (
ID INT NOT NULL PRIMARY KEY,
Name VARCHAR(32),
BirthDate DATETIME
);
INSERT INTO Person
( ID, Name, BirthDate )
VALUES
(311113, 'Dan Lu', '01-22-33'),
(123456, 'Seven Durant', '07-22-94'),
(100100, 'Choochootrain Lu', '12-17-56'),
(106542, 'Spider Ru', '07-22-36'),
(101010, 'Ru Ru', '04-30-84');
END
IF OBJECT_ID ('Job', 'U') IS NULL
BEGIN
CREATE TABLE Job (
ID INT NOT NULL PRIMARY KEY,
Company VARCHAR(64),
Wage FLOAT,
PersonID INT FOREIGN KEY REFERENCES Person(ID)
);
INSERT INTO Job
( ID, Company, Wage, PersonID )
VALUES
(01, 'Space Pizza Space', 1000.00, 311113),
(02, 'Bread', 46.44, 101010),
(03, 'Delivery Service', 400.99, 100100),
(04, 'Nike', 999900.01, 106542),
(05, 'Old McDonald', 6500210.77, 123456);
END
IF OBJECT_ID ('Car', 'U') IS NULL
BEGIN
CREATE TABLE Car (
ID INT NOT NULL PRIMARY KEY,
Make VARCHAR(32),
Model VARCHAR(32)
);
INSERT INTO Car
( ID, Make, Model )
VALUES
(1234, 'Lexus', 'SE'),
(4444, 'Tesla', 'X'),
(5007, 'Chevy', 'Cobalt'),
(7771, 'Ford', 'Runner'),
(6459, 'Toyota', 'Camry');
END
IF OBJECT_ID ('PersonCar', 'U') IS NULL
BEGIN
CREATE TABLE PersonCar (
ID INT,
PersonID INT FOREIGN KEY REFERENCES Person(ID),
CarID INT
);
INSERT INTO PersonCar
( ID, PersonID, CarID )
VALUES
(1, 311113, 1234),
(2, 123456, 4444),
(3, 100100, 5007),
(4, 106542, 7771),
(5, 101010, 6459);
END
SELECT SUM(Wage) AS SumWages, Car.Make, Car.Model
FROM Person
INNER JOIN PersonCar
ON PersonCar.ID = Person.ID
INNER JOIN Job
ON Job.PersonID = PersonCar.ID
Right JOIN Car
ON Car.ID = Person.ID
GROUP BY Wage, Make, Model;