select
distinct
max( rs .ACC_YEAR ) [ACC_YEAR]
, max ( rs. SIDO ) [SIDO] ,max ( rs . ADDR ) [ADDR] , max (rs . BUNJI ) [BUNJI]
, max ( rs. SIDO )+ ' ' + max( rs .ADDR )+ ' ' + max (rs . BUNJI) [ADDRS], max ( rs . ETC_ADDR_BLDGNM) [ETC_ADDR_BLDGNM]
, max ( rs. ETC_ADDR_DONG ) [ETC_ADDR_DONG], SUBSTRING(rs .ETC_ADDR_HO, 1, LEN ( rs.etc_addr_ho )- 2) [FRL]
, max (rs . LAWD_JIMOK_NM ) [LAWD_JIMOK_NM] , max( rs.ZONE_NAME ) [ZONE_NAME] , max ( rs . USE_REGN_NM ) [USE_REGN_NM]
, max (rs . RATIO ) [RATIO],max (rs . BLDG_MUSE_NM ) [BLDG_MUSE_NM] , max (rs . RIGHT_GBN_NM ) [RIGHT_GBN_NM]
, max (rs . ALL_AREA ) [ALL_AREA] , max(rs .TOT_AREA) [TOT_AREA],MAX (rs . SREG ) as SREG , MAX ( rs . SEUB ) as SEUB
,MAX( rc.gakukc ) [GAKUKC]
,SUM( convert(bigint ,rs. sum_amt)) [sum]
,AVG( convert(bigint ,rs. sum_amt)) [avg]
,cast( rs.TOT_AREA as float)/SUM (convert( bigint,rs .sum_amt)) * ((convert( bigint,rs .sum_amt))) * 100 [percent]
from ( select top 100 * from TB_REAL_SUBOBJECT where ACC_YEAR between '2013' and '2014' and OBJ_FIN_GBN = '2'and bldg_muse_cd = '02001'
and SREG ='11110' AND SEUB ='17500' and SBUN1 = '0002' and SBUN2 ='0001' ) as rs
join TB_REAL_MASTER_COMM as rc on rc. ACC_YEAR=rs .ACC_YEAR and rc.ACC_NO =rs. ACC_NO and rc. PNU=rs .PNU
where rs.sum_amt not in ('0')
group by rs.ACC_YEAR ,rs. ETC_ADDR_DONG,SUBSTRING (rs. ETC_ADDR_HO,1 ,LEN( rs.etc_addr_ho )-2), rs.TOT_AREA,rs.sum_amt
층별 퍼센트를 내야되는 쿼리 인데요.
",cast( rs.TOT_AREA as float)/SUM (convert( bigint,rs .sum_amt)) * ((convert( bigint,rs .sum_amt))) * 100 [percent] "
여기에서 ((convert( bigint,rs .sum_amt))) 값은 층에 맞추어서 바뀌어야 됩니다.
즉, 위의 쿼리 실행 하면 아파트 주소 ,아파트 몇동 , 아파트 층 , 가격 등등 나오는데요.
퍼센트를 구할때 기준 층 3층을 기준으로 퍼센트를 구하고 3층이 없을경우 4층 5,6,7,층 이런식으로 올라가게 됩니다.
((convert( bigint,rs .sum_amt))) << 여기에 3층 가격을 3층이 없을경우 4층 ..... 10 층 .... 이상 넣어야되는데...
테이블에 층이 있는것도 아니라서 아파트 호수를 절삭 해서 층을 구현 했는데요....
어떻게 하면 ((convert( bigint,rs .sum_amt))) << 요기에 3층 가격을 넣을 수 있을까요?
설명 한다고 설명 했는데... 어렵네요.
Comment 1
-
ssunsori
2014.11.11 17:42
지금 생각난건데 ... 해당 테이블 한번더 돌려서 층 값을 넣을까요?
아.. 이것도 아닌거 같은데 ...