select pa008,pa029,pa003,pa010,pa011,pa034,pa028,(LEFT(convert(char(23),PA018,111),10)+'/'+convert(char(5),PA019,108)+'-'+LEFT(convert(char(23),PA020,111),10)+'/'+convert(char(5),PA021,108))as time,pa022,pa033,sum(pa014)as pa014 from dgmocpa 
where pa017='2009-08-18' and pa008='R-01' group by pa008,pa029,pa003,pa010,pa011,pa034,pa028,(LEFT(convert(char(23),PA018,111),10)+'/'+convert(char(5),PA019,108)+'-'+LEFT(convert(char(23),PA020,111),10)+'/'+convert(char(5),PA021,108)),pa022,pa033 
order by pa008,(LEFT(convert(char(23),PA018,111),10)+'/'+convert(char(5),PA019,108)+'-'+LEFT(convert(char(23),PA020,111),10)+'/'+convert(char(5),PA021,108))
SQL運行結果字段time為以下時間段是準備的,
2009/08/18/08:00-2009/08/18/11:38
2009/08/18/12:00-2009/08/18/15:32
2009/08/18/16:00-2009/08/18/19:20
2009/08/18/20:00-2009/08/18/21:40
2009/08/18/21:40-2009/08/19/07:40
現在在報表上顯示的時候需要將年月日省去,也就是如下
08:00-11:38
12:00-15:32
16:00-19:20
20:00-21:40
21:40-07:40
不知道有沒有什麽方法進行處理之前年月日不省去是因為時間段有跨天的,所在排序時會出現問題。
但是現在我又不知道怎么省去年月日?哪位大哥幫幫忙!

解决方案 »

  1.   

    SELECT pa008,pa029,pa003,pa010,pa011,pa034,pa028,time,pa022,pa033,
           SUM(pa014) as pa014
      FROM (
    select pa008,pa029,pa003,pa010,pa011,pa034,pa028,
       convert(char(5),PA019,108)+'-'+convert(char(5),PA021,108)) as time,
       pa022,pa033,pa014
      from dgmocpa 
     where pa017='2009-08-18' 
       and pa008='R-01' 
           ) T  
     group by pa008,pa029,pa003,pa010,pa011,pa034,pa028,time,pa022,pa033
     order by pa008,time
      

  2.   


    select pa008,pa029,pa003,pa010,pa011,pa034,pa028,
           convert(char(5),PA019,108)+'-'+convert(char(5),PA021,108) as time,
           pa022,pa033,sum(pa014)as pa014 from dgmocpa 
    where pa017='2009-08-18' and pa008='R-01' 
    group by pa008,pa029,pa003,pa010,pa011,pa034,pa028,
          convert(char(5),PA019,108)+'-'+convert(char(5),PA021,108),
          PA021,108),pa022,pa033 
    order by pa008,8 
      

  3.   


    select pa008,pa029,pa003,pa010,pa011,pa034,pa028,
           convert(char(5),PA019,108)+'-'+convert(char(5),PA021,108) as time,
           pa022,pa033,sum(pa014)as pa014 from dgmocpa 
    where pa017='2009-08-18' and pa008='R-01' 
    group by pa008,pa029,pa003,pa010,pa011,pa034,pa028,
          convert(char(5),PA019,108)+'-'+convert(char(5),PA021,108),
          pa022,pa033 
    order by pa008,8 
      

  4.   

    謝謝大夥,我剛才沒想出好的辦法。想到一個笨方法,如下:
    Private Sub Detail_Format()
    Dim A As String
    Dim B As String
    Dim time1 As String
    Dim time2 As StringIf Field3.Text = "" Then
    Exit Sub
    End If
    '獲取預計排配時間段
     strRST_SQL = "select convert(char(5),PA019,108)as time1,convert(char(5),PA021,108)as time2 from dgmocpa where pa008='" & Field1.Text & "' and pa029='" & Field2.Text & "' and pa003='" & Field3.Text & "' and pa010='" & Field4.Text & "' and pa011='" & Field5.Text & "' and pa017='" & SumDate & "' "
     Call SetRSTReadOnly(strRST_SQL)
       If rst.RecordCount > 0 Then
          Field8.Text = Trim(rst.Fields(0).Value) + "-" + Trim(rst.Fields(1).Value)
        End If
       
    我在這里又單獨抓取時間并在一起放到Field8.Text裡面去了,不知道可行不?
      

  5.   

    不需要求 SUM(pa014) 了?
      

  6.   

    [Quote=引用 4 楼 zz005 的回复:]
    学习
    [/Quote ]