SELECT DISTINCT, ORDER BY expressions must appear in select list

Ich habe minimale Zeilen beibehalten, nur um den Fehler anzuzeigen.


-----
 ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
 LINE 29: ORDER BY inv7 ,A.spdt;
                 ^
 SQL state: 42P10
 Character: 1027
 -----
 > 
> SELECT  
>  distinct concat_ws('',invc.invn, Chr(9),  
>  invc.inv7,Chr(9)) --"invc ID"
>  
> FROM (
>  SELECT DISTINCT inv7 invc_ID, 
>  sdt7 spdt
>  FROM test.INV_CODE, test.invc,test.invcsp
>  left outer join test.pers ON SCR_USER_ID_722 = persc7 ,test.cust
>  WHERE icn7 = iinv7 
>  AND scn7 = INV_CUST_NO_720 
>  AND sld7 IS NOT NULL 
>  )A LEFT OUTER JOIN
>  
> (
>  SELECT DISTINCT inv7 invc_ID, sdt7 spdt, sct7 CONTACT_TYPE, sois7 spc,
>  invcsp.TIMESTAMP--,
>  
> FROM test.INV_CODE, test.invc, test.invcsp, test.ot
>  WHERE icn7 = iinv7 
>  AND scn7 = INV_CUST_NO_720
>  
> AND sld7 IS NULL
>  
> )B ON A.invc_ID = B.invc_ID
>  
> INNER JOIN test.invc ON A.invc_ID = invc.inv7 
>  LEFT OUTER JOIN test.exr2 ON   invc.ic7 = exct7
>  ORDER BY inv7 ,A.spdt;

Du musst das distinct weglassen
oder
Den Order By Ausdruck mit selektieren

1 „Gefällt mir“

Ich kann das Distinct or Order By nicht entfernen (Gibt es einen anderen Ansatz)?

Wenn Du die vielen joins (sowohl die veralteten impliziten als auch die expliziten) durch EXISTS Bedingungen ersetzt, dann kannst Du vermutlich die ganzen DISTINCT komplett weglassen.

Ob das wirklich geht, kann ich leider nicht beurteilen, weil die Spaltenreferenzen ohne Tabelle erfolgen und es völlig unklar ist, aus welcher Tabelle die einzelnen Spalten kommen

Generell solltest Du implizite Joins (from a,b,c where …) und explizite JOIN Operator nicht mischen. Am besten alles mit expliziten JOIN operatoren machen.

left outer join test.pers ON SCR_USER_ID_722 = persc7 ,test.cust ist ausserdem invalides SQL, das kann also so gar nicht laufen.

1 „Gefällt mir“

Du kannst alle distinct Abfragen in (komplexere) Group By Abfragen unformen.
Hier ist ein Beispiel für Deinen Fall.

1 „Gefällt mir“

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.