3단소계를 냈는데 결과창에서 소계를 지우고싶습니다.. 0 8 1,234

by 지메이비 MSSQL [2022.05.19 11:15:35]



select 
			case 1 when grouping(a.sellerCode) then ''총계''
			when grouping(a.storeCode) then ''소계''
			else 
			dbo.UF_SellerName(a.dealerCode,a.sellerCode) end sellerName,
			case 1 when grouping(a.stockInDay) then ''소계''
			else
			(case when a.storeCode=''9999'' then ''창고입고'' else dbo.UF_StoreName(a.dealerCode,a.storeCode) end)end storeName,
			case 1 when grouping(b.materialCode) then ''소계''
			else a.stockInDay end stockInDay,


' ' ' ' '

group by rollup((a.dealerCode,a.sellerCode),(a.storeCode),(a.stockInDay),(b.materialCode,b.materialName,b.dimension,b.unitCode,a.isSellingvat,a.sellerCode))

사진처럼

소계를 공백으로 바꾸고싶은데 방법이있을까요..

by 마농 [2022.05.19 13:24:43]

사진처럼의 표현하는 것 보다는
소계를 오른쪽으로 한칸 이동시켜 표현하는 것을 추천합니다.

[현재 원하는 것)
(주)농업회사벙인러브그레인 창고입고 20170105 1003137
(주)농업회사벙인러브그레인 창고입고 20170105 1003138
(주)농업회사벙인러브그레인 창고입고 20170105 1003139
(주)농업회사벙인러브그레인 창고입고 (소계)  <--- 20170105 에 대한 소계표시인데 창고입고에 대한 소계로 오해할 수 있음.
(주)농업회사벙인러브그레인 (소계)  <--- 창고입고 에 대한 소계표시인데 (주)농업회사벙인러브그레인에 대한 소계로 오해할 수 있음.
(소계)  <- (주)농업회사벙인러브그레인에 대한 소계인데 아무 표시가 없음.
...
(총계)

[추천하는 것)
(주)농업회사벙인러브그레인 창고입고 20170105 1003137
(주)농업회사벙인러브그레인 창고입고 20170105 1003138
(주)농업회사벙인러브그레인 창고입고 20170105 1003139
(주)농업회사벙인러브그레인 창고입고 20170105 (소계)  <- 20170105 에 대한 소계임이 명확하게 표시됨
(주)농업회사벙인러브그레인 창고입고 (소계)  <- 창고입고 에 대한 소계임이 명확하게 표시됨
(주)농업회사벙인러브그레인 (소계)  <- (주)농업회사벙인러브그레인 에 대한 소계임이 명확하게 표시됨
...
(총계)


by 지메이비 [2022.05.19 13:28:11]

컨버전하는 작업이라 똑같이 해야해서 다르면힘들어요 ㅠㅠ 무엇보다 품목코드는 다 달라서 소계가 힘들어요


by 마농 [2022.05.19 13:31:22]

소계를 표시하는 방식만 변경하라고 추천하는 것입니다.
- 결과집합이 달라지지는 않아요.
"품목코드는 다 달라서 소계가 힘들어요" --> 이 말의 의미가 뭘까요?
- 품목코드별 소계를 구하라는게 아닙니다.
- 결과집합이 달라지지는 않아요.


by 지메이비 [2022.05.19 13:43:04]

답변감사합니다!

다른의미로 이해해버렸어요

하지만 말씀드렸다싶이 기존꺼 결과물을 다른프로그램 결과물로 컨버전하는 상황이라 갑자기 바꾸기는 힘들어요..ㅠ


by 마농 [2022.05.19 14:02:51]
SELECT CASE GROUPING_ID(a.sellerCode, a.storeCode, a.stockInDay, b.materialCode)
       WHEN 15 THEN ''총계''
       WHEN  7 THEN ''소계''
       ELSE dbo.UF_SellerName(a.dealerCode, a.sellerCode)
        END sellerName
     , CASE GROUPING_ID(a.sellerCode, a.storeCode, a.stockInDay, b.materialCode)
       WHEN 3 THEN ''소계''
       ELSE CASE WHEN a.storeCode = ''9999'' THEN ''창고입고''
                 ELSE dbo.UF_StoreName(a.dealerCode, a.storeCode) END
        END storeName
     , CASE GROUPING_ID(a.sellerCode, a.storeCode, a.stockInDay, b.materialCode)
       WHEN 1 THEN ''소계''
       ELSE a.stockInDay
        END stockInDay
     , b.materialCode
' ' ' ' '
 GROUP BY ROLLUP( (a.dealerCode, a.sellerCode)
                , a.storeCode
                , a.stockInDay
                , (b.materialCode, b.materialName, b.dimension, b.unitCode, a.isSellingvat)
                )
;

 


by 지메이비 [2022.05.19 14:18:03]

와.. 감사합니다! 

CASE GROUPING_ID(a.sellerCode, a.storeCode, a.stockInDay, b.materialCode)

       WHEN 15 THEN ''총계''

       WHEN  7 THEN ''소계''

       ELSE dbo.UF_SellerName(a.dealerCode, a.sellerCode)

혹시 이부분만 설명해주실수있으신가요??


by 마농 [2022.05.19 14:19:18]

by 지메이비 [2022.05.19 14:21:52]

감사합니다!!

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