2017-10-15 20 views
0

SQLクエリの作成が固まっています。selectクエリの表示列がgroup by節に追加されていません

表:

XX_AR_RECEIPT_CREATE 

列:

RECEIPT_ID     
ENTITY      
LOG_ID      
ACTIVITY_ID    
FIN_CLASS     
RECEIPT_METHOD    
RECEIPT_AMOUNT    
RECEIPT_TYPE    
RECEIPT_NUMBER  
RECEIPT_DATE    
POSTED_DATE    
ACTIVITY_DATE    
SERVICE_DATE    
CASHIER_NAME    
CASHIER_USERNAME   
PAYMENT_REFERENCE_NUMBER 
DEPARTMENT     
SPECIALITY     
ACCOUNT     
STATUS      

これは、それがうまく働いている私のクエリ

select to_char(sum(to_number(receipt_amount))) amount,entity, cashier_name, 
     receipt_method, fin_class,to_char(to_date(posted_date, 'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy') as receipt_date 
from XX_AR_RECIPT_CREATE 
where to_number(receipt_amount)>0 and status='0' 
group by entity, cashier_name, receipt_method, 
     fin_class, to_char(to_date(posted_date,'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy'); 

で、問題は、私はいくつかの余分な列の例を追加したいということですLOG_ID 。しかし、私はそれをGroup By節に追加することはできません。 EG:

select to_char(sum(to_number(receipt_amount))) amount, entity, cashier_name, 
     receipt_method, fin_class,to_char(to_date(posted_date, 'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy') as receipt_date, 
     LOG_ID 
from XX_AR_RECIPT_CREATE 
where to_number(receipt_amount) > 0 and status = '0' 
group by entity, cashier_name, 
     receipt_method, fin_class, to_char(to_date(posted_date, 'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy'); 

私は解決策のためにあまりにもインターネットで検索しました。内部結合は良い解決策でした。しかし、私はto_char()を使用しているので、別名を追加することはできません。 Oracle Database 11g Express Editionリリース11.2.0.2.0 - 64ビット製品を使用しています

答えて

1

あなたはどちらを選択する必要がありますかLOG_ID

select to_char(sum(to_number(receipt_amount))) as amount, entity, cashier_name, 
     receipt_method, fin_class, 
     to_char(to_date(posted_date, 'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy') as receipt_date, 
     min(LOG_ID) as LOG_ID 

またはそれらのリスト(それは長すぎるではありません)を取得する:私はちょうどLISTAGGを忘れてしまった@Gordon

select to_char(sum(to_number(receipt_amount))) as amount, entity, cashier_name, 
     receipt_method, fin_class, 
     to_char(to_date(posted_date, 'dd/mm/yy HH24:MI:SS'), 'dd/mm/yy') as receipt_date, 
     listagg(LOG_ID, ',') within group (order by LOG_ID) as LOG_IDs 
+0

感謝を()例えば、最小値を取得します。これは私を助けるだろう。 –

関連する問題