2016-05-03 3 views
0

crystal 2013でユーザー定義のコマンドコマンドとして以下のクエリを使用しています。これはsql開発者で適切に表示されますが、レポートに追加すると、そして/または間違った順序で。 IDに基づいて行を返す必要があります。 39-40-41-42。しかし、39-41-40-42 ...または3939-4141-4040-4242を返します。だから私は非常に見つけることができませんでしたorder by節がcrystal user definedコマンドで無視されました

select ad.arinvt_id, 
ud.parent_id, listagg(ud.cuser, '') within group (order by ud.parent_id) as sfdt, 
listagg(ud.ud_cols_id, '') within group (order by ud.ud_cols_id) as uci 
from arinvoice_detail ad 
left join ud_data ud 
on ad.arinvt_id = ud.parent_id 
where ad.arinvt_id = ud.parent_id 
and ud.ud_cols_id in (39, 40, 41, 42) 
group by ad.arinvt_id, ud.parent_id 

..パターンがあるようです、私が発見したことは、異なるプラットフォーム上にあります。どんな助けでも大歓迎です!

私はこの見た: How to define a custom order in ORDER BY clause? をして

(order by field(xyz)) 

に変更しようとしましたが、結晶はそれを取ることはないだろう。

+0

私はLISTAGGアイテムを注文するために使用される@Sivaグループ内のクエリ – Siva

+0

での略れているもの、あなたのクエリを理解できませんでした。それは水晶が問題を抱えている部分のようです。 – tr241009

答えて

0

私はテーブルを2回リンクしていました。一度コマンドで、再びクリスタルで。それが何回複製されたのか、他のものではなかったのか、なぜ注文が歪んだのかはわかりませんが、以下のコマンドはこれまでのところ動作します。

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

あなたは答えとしてそれを受け入れることができるので、他の人が使うことができます – Siva

関連する問題