Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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?

Předmět Autor Datum
Uplne prasacke reseni je select distinct ... Ale mel bys zjistit, ve ktere tabulce mas duplicitni r…
Jan Fiala 04.04.2013 10:38
Jan Fiala
To už jsem zvažoval..... ale.... distinct vytáhne jen unikátní záznamy. A u mě je situace, kdy může…
Flash_Gordon 04.04.2013 10:42
Flash_Gordon
Pokud by se zaznamy ve vysledku necim lisily, dostaly by se tam. Projdi si ty joiny a zjisti, kde vz…
Jan Fiala 04.04.2013 11:17
Jan Fiala
select cast(lsd.OrdNumber as integer), fi.Name, ib_decodedate_day(lsd.Docdate$date) || '.' || ib_de… poslední
Flash_Gordon 04.04.2013 11:19
Flash_Gordon
    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
              left join Firms fi on  lsd.Firm_ID = fi.ID  
     left join STOREDOCUMENTS on lsd.STOREDOCUMENT_ID = STOREDOCUMENTS.ID  
     left join FIRMOFFICES on FIRMOFFICES.ID = STOREDOCUMENTS.FIRMOFFICE_ID  
     left join addresses on FirmOffices.ADDRESS_ID = addresses.id 
     join (select parent_id from logstoredocuments2 where logstoredocuments2.store_id = '5100000101' group by parent_id) 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 = '') order by lsd.OrdNumber 

Zpět do poradny Odpovědět na původní otázku Nahoru