select a.name,sum(datediff(minute,StartProcessDate,EndProcessDate))/60 as score 
from T_Question b,T_QuestionType a 
where a.id=b.qtid group  by a.name having sum(datediff(minute,StartProcessDate,EndProcessDate))/60 <>0接着我又取余数
select a.name,sum(datediff(minute,StartProcessDate,EndProcessDate))%60 as score 
from T_Question b,T_QuestionType a 
where a.id=b.qtid group  by a.name having sum(datediff(minute,StartProcessDate,EndProcessDate))%60 <>0
现在我想把分别求到的小时数,和分钟数连在一起,用点号,比如2.4代表20小时零4分怎么连接到一张表里显示出来,暴急啊,兄弟们

解决方案 »

  1.   

    select aa.name,isnull(aa.score,0)+'.'+isnull(bb.score,0) connect from
    ()aa
    full join
    ()bb
    On aa.name=bb.name
      

  2.   

    select t.[name],t.m+'小时'+p.s+'分'
    from 
    (select a.name,m=sum(datediff(minute,StartProcessDate,EndProcessDate))/60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid 
    group  by a.name 
    having sum(datediff(minute,StartProcessDate,EndProcessDate))/60 <>0) t
    innert join 
    (select a.name,s=sum(datediff(minute,StartProcessDate,EndProcessDate))%60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid
     group  by a.name
     having sum(datediff(minute,StartProcessDate,EndProcessDate))%60 <>0) p 
    on t.[name]=p.[name]
      

  3.   

    select t.[name],t.m+'小时'+(cast when p.s<10 then '零' else '' end)+p.s+'分'
    from 
    (select a.name,m=sum(datediff(minute,StartProcessDate,EndProcessDate))/60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid 
    group  by a.name 
    having sum(datediff(minute,StartProcessDate,EndProcessDate))/60 <>0) t
    innert join 
    (select a.name,s=sum(datediff(minute,StartProcessDate,EndProcessDate))%60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid
     group  by a.name
     having sum(datediff(minute,StartProcessDate,EndProcessDate))%60 <>0) p 
    on t.[name]=p.[name]
      

  4.   

    应该用full join,因为你在分组的时候用了having,不一定name都是一一对应的
      

  5.   

    (select a.name,m=sum(datediff(minute,StartProcessDate,EndProcessDate))/60 as score 
    和这行有语法错误
    (select a.name,s=sum(datediff(minute,StartProcessDate,EndProcessDate))%60 as score 
    消息 156,级别 15,状态 1
    关键字 'as' 附近有语法错误。
    消息 156,级别 15,状态 1
    关键字 'as' 附近有语法错误。
      

  6.   

    一定要象上面这样复杂吗?小时数和取余的结果中间加个点号,搞了一天了,楼上老大们,这程序还是报错,我就想要这个格式的   name        score(备注:一个小时数,一个分钟数,中间.号连起来)
    1  BUG提交     12.59
    2  跟新问题    104.21
    3  解除绑定    609晕,汗
      

  7.   

    select aa.name,ltrim(isnull(aa.score,0))+'.'+ltrim(isnull(bb.score,0)) connect from
    (
    select a.name,sum(datediff(minute,StartProcessDate,EndProcessDate))/60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid group by a.name having sum(datediff(minute,StartProcessDate,EndProcessDate))/60 <>0
    )aa
    full join
    (
    select a.name,sum(datediff(minute,StartProcessDate,EndProcessDate))%60 as score 
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid group by a.name having sum(datediff(minute,StartProcessDate,EndProcessDate))%60 <>0
    )bb
    On aa.name=bb.name
      

  8.   

    没必要having吧
    select a.name,ltrim(sum(datediff(minute,StartProcessDate,EndProcessDate))/60) +'.'+
    ltrim(sum(datediff(minute,StartProcessDate,EndProcessDate))%60)
    from T_Question b,T_QuestionType a 
    where a.id=b.qtid group by a.name