데이터에
A 판매금액 판매금 10000
A 적립금액 적립금 20000
A 기준일자 기준일 20
B 판매금액 판매금 10000
이렇게 4개의 레코드가 있을때
이걸
A 판매금액.판매금 >= 10000 AND 적립금액.적립금>=20000 AND 기준일자.기준일>=20
B 판매금액.판매금>=10000
이런식으로 단 A,B각각 합친걸로 두개의 레코드만 나오게 하고싶은데 어떻게 하면 좋을까요??ㅠㅠ제 기초 실력으론 잘안되네요 아 참고로 >=문자열은 항상 고정입니다 AND도 두번째부터는 꼭 AND문자열로 묶이구요
일단 저 위에 나오는 쿼리가
대충
SELECT a.TIER_TYPE_CD AS tierTypeCd
, b.DS_NM AS dsNm
, c.FIELD_DESC AS fieldDesc
, d.COND_VAL AS condVal
FROM a a1
JOIN b b1 ON a1.id = b1.ID
JOIN c c1 ON a1.id = c1.id
JOIN d d1 ON a1.id = d1.id
이런식일때 a.TIER_TYPE_CD별로 묶어서 각각 condVal을 AND로어떻게 하면 묶을수있을까요?
||로만 묶으니 좀 쿼리가 이상해지더라구요 ㅠ
WITH t AS ( SELECT 'A' tier_type_cd, '판매금액' ds_nm, '판매금' field_desc, '10000' cond_val FROM dual UNION ALL SELECT 'A', '적립금액', '적립금', '20000' FROM dual UNION ALL SELECT 'A', '기준일자', '기준일', '20' FROM dual UNION ALL SELECT 'B', '판매금액', '판매금', '10000' FROM dual ) SELECT tier_type_cd , LISTAGG(ds_nm ||'.'|| field_desc ||' >= '|| cond_val, ' AND ') WITHIN GROUP(ORDER BY ds_nm DESC) x FROM t GROUP BY tier_type_cd ; http://gurubee.net/article/55512