Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL Firebird zdvojené řádky

Zdar.

Mám původní dotaz:

      select StoreCards.Name, cast(documents.OrdNumber as integer),
ib_datetostring(documents.DocDate$Date,'DD.MM.YYYY'),
 l1.ID, storeBatches.Name, StoreCards.EAN, StoreCards.id StoreCardId, 
StoreCards.Code KodSklKarty, l1.QUnit, p1.BarCode PoziceOdkud, p1.BarCode PoziceKam
, cast(l1.quantity as integer)/cast(l1.unitrate as integer), StoreEans.EAN,  cast(l1.quantity as integer)  mnozstvi,
p1.x_uskutecneny_pocet_navstev, p1.X_POCET_NAVSTEV_PRO_VAL,  p1.POSITIONTYPE, p1.id,
 l1.x_zpracovano, l1.x_EAN_paleta, cast(l1.quantity as integer)/cast((select first 1 coalesce(unitrate,1) from storeunits where storeunits.parent_id = storecards.id and (storeunits.code = 'bal' or storeunits.code='MU')) as integer), storeUnits.code,
  cast(cast(l1.quantity as integer)/cast((select first 1 coalesce(unitrate,1) from storeunits where storeunits.parent_id = storecards.id and (storeunits.code = 'bal' or storeunits.code='MU')) as integer) as varchar(10)) ||' '||storeUnits.code 
from LogStoreDocuments documents
left join logstoredocuments2 l1 on l1.parent_id=documents.id and documents.documenttype='32'
left join storecards on storecards.id=l1.storecard_id
LEFT JOIN storeBatches on l1.StoreBatch_ID = storeBatches.ID
LEFT JOIN LogStorePositions p1 ON p1.ID = l1.StorePosition_ID
LEFT JOIN StoreUnits on StoreUnits.parent_ID = storecards.id and StoreUnits.code = l1.Qunit
LEFT JOIN StoreEans on StoreEans.parent_ID = storeUnits.ID
LEFT JOIN StoreUnits SU2 on SU2.parent_id = storecards.id and (SU2.code = 'bal' or SU2.code = 'MU')
where DocumentType = '32' and l1.id = '5100000101' 
and  (x_uzamkl = '&C6' or x_uzamkl = '') order by p1.BarCode

Ve kterém se vyskytují zdvojené řádky díky:
LEFT JOIN StoreUnits SU2 on SU2.parent_id = storecards.id and (SU2.code = 'bal' or SU2.code = 'MU'), který v některých případech vrací 2. totožné řádky.

Tak jsem tento join nahradil subselectem následně:

LEFT JOIN (select first 1 SU2.code from StoreUnits SU2 where SU2.parent_id = storecards.id) SU2 on SU2.parent_id = storecards.id


Ovšem zde hlásí SQL tuto chybu:

SQL error code = -206.
Column unknown.
STORECARDS.ID.
At line 20, column 46.

Napadá někoho, jak z toho ven ?

Předmět Autor Datum
Ten JOIN tam vůbec nepotřebuješ, stačí do WHERE přidat dlaší podmínku: ...AND EXISTS (select * from…
Wikan 04.04.2013 18:28
Wikan
Já jsem to už pořešil trochu jinak, ale to co ukazuješ je vnořený select a s tím je ten problém, že…
Flash_Gordon 04.04.2013 20:50
Flash_Gordon
To je divný, podobné dotazy jsem používal běžně. Jaká je to verze FB?
Wikan 04.04.2013 21:19
Wikan
Dělám přesčasy a dělám je zadarmo, ale v tento okamžik už nevím a jdu spát. Boží mlýny melou pomalu… poslední
Flash_Gordon 04.04.2013 22:00
Flash_Gordon

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