Во-первых, SELECT DISTINCT
является избыточным с GROUP BY
.
Во-вторых, если этот запрос
SELECT p.Id, p.Name, pg.PagaBruto
FROM punetoret p LEFT JOIN
pagat2 pg
ON p.Id = pg.Name_Id
GROUP BY p.Id, p.Name, pg.PagaBruto
возвращает указанные вами результаты, тогда есть разница в одном столбце, который вы не видите. Вы не предоставляете достаточно информации, чтобы определить, что это такое.
Я думаю, что это будет делать то, что вы хотите:
SELECT p.Id, MAX(p.Name) as p.Name, MAX(pg.PagaBruto) as PagaBruto
FROM punetoret p LEFT JOIN
pagat2 pg
ON p.Id = pg.Name_Id
GROUP BY p.Id;
Что является конечной причиной? Это зависит от типов данных. Я предполагаю, что Name
в порядке, потому что он из той же таблицы, что и id
- и я предполагаю, что id
уникален. Однако строки в разных строках могут содержать разные скрытые символы (например, начальные пробелы), которые трудно обнаружить.
Целые и числовые значения обычно хороши, но числа с плавающей запятой могут выглядеть одинаково, но могут быть разными.