SELECT
ISNULL(SUM(CASE b.login_date WHEN '20170616' THEN count(DISTINCT b.user_id) ELSE 0 END),0)
,''
FROM TAUSER a,
(
SELECT * FROM TADAY x, TALOGINCCLOG y
WHERE x.tday = y.login_date
AND x.tday >= '20170616'
AND x.tday <= '20170616'
AND y.comp_no = '100'
) b
WHERE a.comp_no = b.comp_no
AND a.user_id = b.user_id
AND a.comp_no = '100'
AND a.is_monitor = 'Y'
GROUP BY b.comp_no , b.login_date, b.user_id
아래와 같은 쿼리인데요...
원래 오라클을 사용하다보니 SQL 쪽이 쉽지가 않네요..
어떻게 해결해야하나요?
Comment 1
-
知音
2017.06.22 11:32
해당일자의 user_id를 중복을 배제하고 Count 하고자 하는 것 같은데 중복해서 집계함수를 사용할
필요는 없어 보입니다.
이렇게 하면 안될까요 ?
ISNULL(COUNT(DISTINCT CASE WHEN b.login_date = '20170616' THEN b.user_id END),0)