SELECT TA.card_com,convert(varchar(8), getdate(), 112) wr_date,
case when right(acq_date,1)%2 = 1 then 1 else 2 end, TA.mcht_no,
TA.acq_date, TM.mcht_busnno, count(*) ask_cnt, sum(TA.auth_amt)
ask_amt
, 0, 0, 0, 0, 0, 0, count(*) total_cnt,
sum(TA.auth_amt) total_amt,
convert(int,(sum(TA.auth_amt)*isnull(TCC.card_fee,0)/100))
total_fee
, convert(varchar(8), getdate(), 112), sum(TA.auth_amt)
- convert(int,(sum(TA.auth_amt)*isnull(TCC.card_fee,0)/100))
rcp_amt, TM.bc_acct_no setl_acct
FROM tbtr_aqui TA
, (SELECT * FROM tbmer_merchant WHERE st = 'Y')
TM
, (SELECT * FROM tbmer_card_com WHERE card_com IN
('0100' , '01')) TCC
, (SELECT min(sun_calendar) sun_calendar FROM (SELECT
TOP 2 sun_calendar FROM tbcalendar WHERE sun_calendar <
convert(varchar(8), getdate(), 112) AND holiday = '2' ORDER BY
sun_calendar DESC) DT) TDT
, (SELECT min(sun_calendar) sun_calendar FROM (SELECT
TOP 2 sun_calendar FROM tbcalendar WHERE sun_calendar <
convert(varchar(8), getdate(), 112) AND holiday = '2' ORDER BY
sun_calendar DESC) DT) DTD
WHERE TA.card_com IN ('0100' , '01')
AND acq_date BETWEEN TDT.sun_calendar and
DTD.sun_calendar
AND TA.terminal_id = TM.terminal_id
AND TA.busn_no = TM.mcht_busnno
AND TM.terminal_id = TCC.terminal_id
AND TM.mcht_busnno = TCC.mcht_busnno
AND TM.van_code = TCC.van_code
GROUP BY TA.card_com, TA.mcht_no, TM.mcht_busnno, TA.acq_date,
TM.bc_acct_no, TCC.card_fee
이쿼리에서 group by 된 컬럼기준으로 결과값이 1개의 row씩
나와야하는데 2개이상씩 나오는경우가 있습니다. 2개이상씩
나오는경우만 찾아볼수 있는 쿼리를 만들고 싶은데 잘안되네요..
having 을 써봤지만 힘드네요.. 도움 부탁드립니다...
|