2016-06-28 2 views
-1

가진 그룹 I 행이 쿼리에 의해 생성 된 샘플 데이터이며,이SQL 서버 : 동일한 값과 다른 행

Acct#  OwnerType TotalBal Type1Bal Type2Bal Type3Bal 
    -------------------------------------------------------------- 
    1234  Type1  0   1000   0   
    1234  Type2  0    0  1000 
    1234  Type3  0    0   0  1000 
    123456 Type1  0   2000   0   0 
    123456 Type2  0    0  2000   0 
    123456 Type3  0    0   0  2000 

같은 쿼리의 출력을 갖는다. 각 계좌 번호에는 머리글 행 (이와 비슷한 것)이 필요합니다. 실제로 3 개의 저울 중 하나와 총 잔액이있는 행). 누구든지 올바른 방향으로 나를 제안하거나 가르 칠 수 있습니까?

Acct#  OwnerType TotalBal Type1Bal Type2Bal Type3Bal 
    ------------------------------------------------------------------- 
    1234  TotalAmt 1000   0   0  0 
    1234  Type1  0  1000   0  0 
    1234  Type2  0   0   1000  0 
    1234  Type3  0   0   0 1000 
    123456 TotalAmt 2000   0   0  0 
    123456 Type1  0  2000   0  0 
    123456 Type2  0   0   2000  0 
    123456 Type3  0   0   0 2000 

답변

0
Declare @Table table (Acct int,OwnerType varchar(25),TotalBal int,Type1Bal int,Type2Bal int,Type3Bal int) 
Insert into @Table values 
(1234  ,'Type1',  0,   1000,   0 ,  null), 
(1234  ,'Type2',  0 ,   0 ,  1000,  null), 
(1234  ,'Type3',  0 ,   0 ,   0 ,  1000), 
(123456 ,'Type1',  0 ,   2000 ,  0 ,  0), 
(123456 ,'Type2',  0 ,   0 ,  2000 ,  0), 
(123456 ,'Type3',  0 ,   0 ,   0 ,  2000) 


Select Acct,OwnerType='TotalAmt',TotalBal=max(Type1Bal),Type1Bal=0,Type2Bal=0,Type3Bal=0 From @Table Group By Acct 
Union All 
Select Acct,OwnerType,TotalBal=0,Type1Bal=isnull(Type1Bal,0),isnull(Type2Bal,0),IsNull(Type3Bal,0) from @Table 
Order By Acct,OwnerType 

반환

Acct OwnerType TotalBal Type1Bal Type2Bal Type3Bal 
1234 TotalAmt 1000  0   0   0 
1234 Type1  0   1000  0   0 
1234 Type2  0   0   1000  0 
1234 Type3  0   0   0   1000 
123456 TotalAmt 2000  0   0   0 
123456 Type1  0   2000  0   0 
123456 Type2  0   0   2000  0 
123456 Type3  0   0   0   2000