2016-05-03 6 views
0

Ich benutze die unten Abfrage als eine benutzerdefinierte Befehl Befehl in Kristall 2013. Es zurückgibt und ordnungsgemäß in SQL-Entwickler bestellt, aber wenn ich es zu meinem Bericht hinzufügen die Felder sind entweder doppelt zurückgegeben und/oder in der falschen Reihenfolge. Es sollte Zeilen basierend auf ID zurückgeben, die z.B. 39-40-41-42. Aber gibt 39-41-40-42 zurück ... Oder 3939-4141-4040-4242. So scheint es ein Muster zu geben ..Reihenfolge nach Klausel ignoriert in Crystal benutzerdefinierten Befehl

Ich konnte nicht viel finden, was ich gefunden habe, ist auf verschiedenen Plattformen. Jede Hilfe wird sehr geschätzt!

Ich sah dies: How to define a custom order in ORDER BY clause? und versuchte zu

(order by field(xyz)) 

aber Kristall, dass nicht nehmen würde sich ändern.

+0

Ich konnte nicht verstehen, Ihre Frage, was innerhalb der Gruppe ist für steht in Abfrage – Siva

+0

@Siva es verwendet wird, um die listagg Artikel zu bestellen. Das scheint der Teil zu sein, den Crystal mit sich bringt. – tr241009

Antwort

0

Ich verband die Tabelle zweimal. Einmal im Kommando, wieder im Kristall. Nicht sicher, warum es die Verdoppelung einige Male und nicht andere gemacht hat, oder warum die Reihenfolge verzerrt wurde. Aber der folgende Befehl funktioniert so weit.

select 
ud.parent_id, 
listagg(ud.cuser, '') within group (order by ud.ud_cols_id) as sfdt 
from ud_data ud 
where ud.ud_cols_id in (39, 40, 41, 42) 
group by ud.parent_id 
+0

Sie können es als Antwort akzeptieren, damit andere es benutzen können – Siva

Verwandte Themen