MSSQL rollup을 통해서 총계를 구했는데 그 총계에 반올림을 주고싶습니다.. 가능한가요? 0 4 466

by 뮈일러 mssql [2022.02.11 09:39:21]



select '' stockInDay,
 		a.materialCode, 
 		b.materialName, 
 		b.dimension, 
 		dbo.uf_unitName(b.unitCode) unitName, 
 		sum(isNull(a.materialQty,0)-isNull(a.rtnQty,0)) materialQty, 
 		avg(a.buyingPrice) buyingPrice, 
 		sum(a.buyingAmt) buyingAmt, 
 		sum(a.buyingVat) buyingVat, 
 		'' remark,	 
 		'' domesticText, 
 		dbo.UF_STORENAME('1071',a.storeCode) storeName,a.isBuyingvat
 	from orders a,material b 
 	where a.dealerCode='1071' 
	and a.storeCode='2166' 
 	and a.stockInDay between '20190528' and '20190528'
 	and a.dealerCode=b.dealerCode 
 	and a.materialCode=b.materialCode 
 	group by rollup((a.materialcode,b.materialname,b.dimension,unitCode,buyingPrice,buyingVat,a.storeCode,isbuyingvat))

이렇게 코드를 짜서 rollup을 통해 총계는 구했는데

총계135.50을 반올림하여 136으로 보이고싶은데 가능한건가요? 

by 마농 [2022.02.11 10:04:27]

총계에만 반올림 하나요?
아니면 일반합계도 같이 반올림하나요?


by 뮈일러 [2022.02.11 10:05:28]

null값 있는 열만 하고싶습니다


by 축구쟁이 [2022.02.11 10:09:30]

rollup 내에 괄호가 있네요

case 문으로 분기처리하면 될 것 같습니다

 

CASE WHEN a.materialcode IS NULL THEN ROUND(sum(isNull(a.materialQty,0)-isNull(a.rtnQty,0)), 0) ELSE sum(isNull(a.materialQty,0)-isNull(a.rtnQty,0)) END


by 마농 [2022.02.11 10:12:49]

1. "열"이 아니라 "행"이겠죠?
2. 롤업에 합계 항목은 빠져야 하지 않나요?
, buyingPrice, buyingVat
3. 총계만 반올림 하려면.
 

CASE GROUPING(a.materialcode) WHEN 0
THEN       SUM(ISNULL(a.materialQty, 0) - ISNULL(a.rtnQty, 0))
ELSE ROUND(SUM(ISNULL(a.materialQty, 0) - ISNULL(a.rtnQty, 0)), 0)
 END materialQty

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입