SQL Firebird pomoc s dotazem
Ahoj, mám dotaz:
select cast(lsd.OrdNumber as integer), fi.Name,
ib_decodedate_day(lsd.Docdate$date) || '.' || ib_decodedate_month(lsd.Docdate$date) || '.' || ib_decodedate_year(lsd.Docdate$date),
lsd.id, addresses.city ||' '|| addresses.Street ||' ' || addresses.PostCode
from LogStoreDocuments lsd
join Firms fi on lsd.Firm_ID = fi.ID
join STOREDOCUMENTS on lsd.STOREDOCUMENT_ID = STOREDOCUMENTS.ID
join FIRMOFFICES on FIRMOFFICES.ID = STOREDOCUMENTS.FIRMOFFICE_ID
join addresses on FirmOffices.ADDRESS_ID = addresses.id
join logstoredocuments2 on logstoredocuments2.parent_id = lsd.id
where lsd.Firm_ID = fi.ID and lsd.x_zpracoval_terminal <> 'A' and lsd.documentType = 32 and
(lsd.x_uzamkl = '') and logstoredocuments2.store_id = '5100000101' order by lsd.OrdNumber
Dotaz funguje ok, ale vrací duplicitní řádky.
Já chci, aby vracel jen řádky s odlišnými lsd.id.
Nemohu to jednoduše pořešit vložením group by lsd.id, protože to nefunguje takto s join.
Nějaká rada?
Uplne prasacke reseni je
select distinct ...
Ale mel bys zjistit, ve ktere tabulce mas duplicitni radky. Nejaky JOIN zpusobi napojenim zdvojeni.
Staci si vzit jediny duplicitni radek a zkontrolovat vazby
To už jsem zvažoval..... ale....
distinct vytáhne jen unikátní záznamy.
A u mě je situace, kdy může být více firem zcela totožného jména,
ale jiné adresy (a to by distinct nezobrazil).
Pokud by se zaznamy ve vysledku necim lisily, dostaly by se tam.
Projdi si ty joiny a zjisti, kde vznikaji duplicity