注册 登录
编程论坛 SQL Server论坛

求汇总的一个问题

soosii 发布于 2012-05-24 17:36, 416 次点击
明细表        
号码    数量    左脚数  右脚数
30        1         2      0
31        2         3      0      
32        3         0      2   
33        4         0      1     
34       23         3      4            
35       21         2      3   
36       12         3      1   
37       13         2      5     
汇总表        
号码    数量     
30      1L2               
31      2L3                     
32      3R2                  
33      4R1                  
34       23                           
35       21                  
36       12                  
37       13               

就是左右脚一个为0时  数量就是+L(左)数量 或者  +R(右)数量   同时存在 就取原本数量
4 回复
#2
png2012-05-25 00:17
可以用 case 语句.  类似 -

Select  ID,
        case
            when Left <>0 and Right <>0 then Amount
            when Left  = 0              then Amount + 'R' + Right
            when Right = 0              then Amount + 'L' + Left
        end

另外, 如果左右都为0你想得到 5R0 还是 5L0?
#3
soosii2012-05-26 11:31
左右数量为0  只取数值5  不加左右
#4
soosii2012-05-26 11:32
还有 这样会出现 转换字符的错误
#5
png2012-05-30 06:11
Select  ID,
        case
            when (Left <>0 and Right <>0) or (Left =0 and Right =0) then Amount
            when Left  = 0              then Amount + 'R' + Right
            when Right = 0              then Amount + 'L' + Left
        end

转换字符的错误应该是由于类似 Amount + 'R' + Right 的运算. 可以试试 cast(Amount as varchar) + 'R' + cast(Right as varchar)


1