2017-08-11 5 views
0

で無い値を持つ行の結果を取得する方法:私はSQLを実行するには、次のしているMAX句

SELECT ACCT_GRP_CODE, MAX(RECEPTION_TIMES) AS RECEPTION_TIMES 
FROM VIEW_ID_MONITORING 
WHERE SYSTIMESTAMP AT TIME ZONE 'UTC'>FROM_TZ(CAST(TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || RECEPTION_END, 'YYMMDDHH24:MI') AS TIMESTAMP), UTC_TIME_TOTAL_OFFSET) 
GROUP BY ACCT_GRP_CODE 

これは過去最高の受信時間を算出します。 これは過去の受信時刻を持つ勘定グループのデータのみを返します。私は過去の受信時間なしで勘定グループコードを返すことも望みます。

どうすればよいですか?

答えて

2

一つの方法は、条件付きの集合体である:

SELECT ACCT_GRP_CODE, 
     MAX(CASE WHEN SYSTIMESTAMP AT TIME ZONE 'UTC'>FROM_TZ(CAST(TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || RECEPTION_END, 'YYMMDDHH24:MI') AS TIMESTAMP), UTC_TIME_TOTAL_OFFSET) THEN RECEPTION_TIMES 
      END) AS RECEPTION_TIMES 
FROM VIEW_ID_MONITORING 
GROUP BY ACCT_GRP_CODE; 

アカウントのグループコードのリストを持っている場合は、あなたが行うことができます:

SELECT agc.ACCT_GRP_CODE, MAX(vim.RECEPTION_TIMES) AS RECEPTION_TIMES 
FROM ACCOUNT_GROUP_CODES agc LEFT JOIN 
    VIEW_ID_MONITORING vim 
    ON agc.ACCT_GRP_CODE = vim.ACCT_GRP_CODE AND 
     SYSTIMESTAMP AT TIME ZONE 'UTC'>FROM_TZ(CAST(TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || RECEPTION_END, 'YYMMDDHH24:MI') AS TIMESTAMP), UTC_TIME_TOTAL_OFFSET) 
GROUP BY agc.ACCT_GRP_CODE; 
関連する問題