Вам необходимо решить, что делать с несколькими значениями, возвращаемыми для данной строки адресов, оборачивая столбцы из таблицы locationdata в агрегатные функции. Здесь я предположил, что вы просто хотели минимальное значение:
Select addr.Linje-ID as lineid
, addr.Sluttbruker As companyName
, addr.Gate As street
, addr.Husnr As housenr
, addr.postnr As zip
, addr. poststed As location
, Min( loc.UX_KOORDINAT ) As coord_x
, Min( loc.UY_KOORDINAT ) As coord_y
, Min( loc.adresse_id ) As addr_id
From addresses As addr
Join locationdata As loc
On loc.poststed = addr.poststed
And loc.post_nr = addr postnr
And loc.gatnavn = upper(addr.gate)
And loc.husnummer = addr.husnr
Group By addr.Linje-ID
, addr.Sluttbruker
, addr.Gate
, addr.Husnr
, addr.postnr
, addr. poststed
Добавление
Другое решение, которое даст больше логических результатов, чем указано выше (хотя не более логично без дополнительной информации), состоит в произвольном выборе строки данных о местоположении для каждого адреса. Для этого нам нужно знать имена столбцов первичного ключа. Здесь я предположил, что они называются "PrimaryKeyColumn"
Select addr.Linje-ID as lineid
, addr.Sluttbruker As companyName
, addr.Gate As street
, addr.Husnr As housenr
, addr.postnr As zip
, addr. poststed As location
, loc.UX_KOORDINAT As coord_x
, loc.UY_KOORDINAT As coord_y
, loc.adresse_id As addr_id
From addresses As A
Join (
Select addr.PrimaryKeyColumn
, Min( loc.PrimaryKeyColumn ) As locid
From addresses As addr
Join locationdata As loc
On loc.poststed = addr.poststed
And loc.post_nr = addr postnr
And loc.gatnavn = upper(addr.gate)
And loc.husnummer = addr.husnr
Group By addr.PrimaryKeyColumn
) As Z
On Z.PrimaryKeyColumn = addr.PrimaryKeyColumn
Join locationdata As loc
On loc.PrimaryKeyColumn = Z.locid