När du får ett Oracle-felmeddelande som du inte förstår är det första du ska göra att leta upp innebörden. Ett sätt är helt enkelt att Googla det. I det här fallet finns den fullständiga beskrivningen i Oracle9i Database Error Meddelanden är:
(Konstigt nog finns det här felmeddelandet inte dokumenterat i 10G- eller 11G-manualerna, trots att det fortfarande är uppe!)
Detta matchar det påstående du har skrivit, vilket är en SELECT DISTINCT-fråga där du försöker sortera resultaten efter en kolumn som du inte har valt.
Om du tänker på det, är det du frågar efter inte meningsfullt:genom att välja DISTINCT-värden som inte inkluderar sam.stoptime (till exempel) kan du konsolidera många rader med olika värden för sam.stoptime, så vilken skulle styra beställningen?
Dessutom, som Noels svar påpekar, finns det ingen anledning att ha en ORDER BY-klausul i den här koden ändå, så lösningen är helt enkelt att ta bort den.