SQL Firebird dotaz na kravinku
Uvažujme tento (Firebird) SQL 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, lsd.X_ZPRACOVAL_TERMINAL from LogStoreDocuments lsd, Firms fi , logstoredocuments2 where LogStoreDocuments2.Parent_id = LogStoreDocuments2.id and lsd.Firm_ID = fi.ID and lsd.x_zpracoval_terminal <> 'A' and (lsd.documentType = 31 and lsd.x_uzamkl = '' OR lsd.x_uzamkl = '&C6' and Logstoredocuments2.Store_ID = '5100000101' )
Dotaz funguje ale...... !Protože obsahuje duplicitní řádky, pokouším se je eliminovat doplněním na konec group by:
group by lsd.id
Pak na mě háže tuto chybu: Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
To by byl první dotaz.
A druhý dotaz je, zda lsd.id je příslušné k ostatním řádkům z první tabulky ?!
Protože ty dvě tabulky nejsou spárovány pomocí left join.
Zkoušeli jsme to přes left join, ale dotaz trval neúměrně dlouho.