Когда я делаю сумму и левое объединение в моем запросе, результат больше не является правильным.Это происходит потому, что в одной таблице идентификатор, к которому я присоединяюсь, является более распространенным, как я могу предотвратить неправильную сумму?
У меня есть таблица с именем Norm
ID: 1 LocationID: 1 Norm: 0,22
ID: 1 LocationID: 1 Norm: 0,25
И у меня есть таблица с именем Hour
ID: 1 LocationID: 1
ID: 2 LocationID: 1
ID: 3 LocationID: 1
Запрос:
SELECT N.LocationID, SUM(N.Norm) FROM Norm N
Результат:
LocationID: 1 Sum(N.Norm): 0,47
Запрос:
SELECT N.LocationID, SUM(N.Norm) FROM Norm N LEFT JOIN Hour H ON
N.LocationID = H.LocationID
Результат:
LocationID: 1 Sum(N.Norm): 1,41
Сценарий:
CREATE TABLE Norm` ( `ID` INT NOT NULL , `LocationID` INTNOT NULL ,
`Norm` DECIMAL(10,2) NOTNULL );
INSERT INTO `Norm`(`ID`, `LocationID`, `Norm`)
VALUES (1,1, 0.22);
INSERT INTO `Norm`(`ID`, `LocationID`, `Norm`)
VALUES (2,1, 0.25)
CREATE TABLE `Hour` ( `ID` INT NOT NULL , `LocationID` INTNOT NULL );
INSERT INTO `Hour`(`ID`, `LocationID`) VALUES (1, 1);
INSERT INTO `Hour`(`ID`, `LocationID`) VALUES (2, 1);
INSERT INTO `Hour`(`ID`, `LocationID`) VALUES (3, 1);
Мне нужно объединение, но я хочу, чтобы сумма была правильной, как в первом случае, как я могу это сделать?