有一個表 table A                A1   B1  C1  D1 
              1    2   2    3
              1    3   2    1
              2    3   6    2
              2    4   6    1
     B1中是0~~23的整數得到結果
            A1   B1   C1   D1 
            1    2-3  2    4 
            2    2-3  6    2
            2    4-5  6    1
求select 語句 或  在delphi 中解決的方法??

解决方案 »

  1.   

    说实话,看不懂,另外需要拼接的不得不采用多条语句,或者Function或者Stored Procedure.
      

  2.   

    另:今天总在unsigned(僵哥(为什么我会到这里来……)) 的后面,现觉得暂时退出CSDN一上午:)
      

  3.   

    select A1, Convert(varchar(10), B1) + '-' + Convert(varchar(10), B1 + 1) as B1, C1, D1 from Table_A
      

  4.   

    select A1, Convert(varchar(10), B1 -1) + '-' + Convert(varchar(10), B1) as B1, C1, D1 from Table_A
    where (B1 % 2) <> 0
    union
    select A1, Convert(varchar(10), B1) + '-' + Convert(varchar(10), B1 + 1) as B1, C1, D1 from Table_A
    where (B1 % 2) = 0
      

  5.   

    用ORACLE  
      就是黨A1, C1 中數據相同的時候 而且B1中的數據是相鄰的 例如是B1中的數據分別是4,5 這是就讓D1中的數據相加 (必須是偶數比奇數才能讓D1中的數據相加)
      

  6.   

    搞定,Sql Server 2005测试通过建议添加一个字段B2 varchar(50) update Table_A
    set B2 = case (B1 % 2)
      when 0 then Convert(varchar(10), B1) + '-' + Convert(varchar(10), B1 + 1)
      when 1 then Convert(varchar(10), B1 -1) + '-' + Convert(varchar(10), B1)
      end
    select A1, B2 as B1, C1, Sum(D1) as D1
    from Table_A
    group by A1, B2, C1
    结果如下
    1 2-3 2 4
    2 2-3 6 2
    2 4-5 6 1