isnull(col,0)DATENAME
返回代表指定日期的指定日期部分的字符串。语法
DATENAME ( datepart , date )

解决方案 »

  1.   

    select month(date) date1, sum(DeathNumber),sum(WoundNumber),sum(LoseMoney) from  Accident_Report group by date1 order by date1
      

  2.   

    select convert(varchar(7),Date,120) , sum(DeathNumber),sum(WoundNumber),sum(Lose) from Accident_Report
    group by convert(varchar(7),date,120)
      

  3.   


     SELECT a.Mon,
            ISNULL(b.DeathNumber,0) as TotalDN,
            ISNULL(WoundNumber,0) as TotalWN,
            ISNULL(LoseMoney,0)   as TotalLM
     FROM 
         (
          SELECT 1 as Mon UNION ALL 
          SELECT 2 as Mon UNION ALL 
          SELECT 3 as Mon UNION ALL 
          SELECT 4 as Mon UNION ALL 
          SELECT 5 as Mon UNION ALL 
          SELECT 6 as Mon UNION ALL 
          SELECT 7 as Mon UNION ALL 
          SELECT 8 as Mon UNION ALL 
          SELECT 9 as Mon UNION ALL 
          SELECT 10 as Mon UNION ALL 
          SELECT 11 as Mon UNION ALL 
          SELECT 12 as Mon 
          ) a LEFT JOIN 
          (
           SELECT DatePart(mm,Date) as Mon,
                  SUM(DeathNumber) as TotalDN,
                  SUM(WoundNumber) as TotalWN,
                  SUM(LoseMoney)   as TotalLM
           FROM Accident_Report
           GROUP BY DatePart(mm,Date) 
          ) b
          ON a.Mon=b.Mon 
      
      

  4.   

    字段名错了.
     SELECT a.Mon,
            ISNULL(b.TotalDN,0) as TotalDN,
            ISNULL(b.TotalWN,0) as TotalWN,
            ISNULL(b.TotalLM,0) as TotalLM
     FROM 
         (
          SELECT 1 as Mon UNION ALL 
          SELECT 2 as Mon UNION ALL 
          SELECT 3 as Mon UNION ALL 
          SELECT 4 as Mon UNION ALL 
          SELECT 5 as Mon UNION ALL 
          SELECT 6 as Mon UNION ALL 
          SELECT 7 as Mon UNION ALL 
          SELECT 8 as Mon UNION ALL 
          SELECT 9 as Mon UNION ALL 
          SELECT 10 as Mon UNION ALL 
          SELECT 11 as Mon UNION ALL 
          SELECT 12 as Mon 
          ) a LEFT JOIN 
          (
           SELECT DatePart(mm,Date) as Mon,
                  SUM(DeathNumber) as TotalDN,
                  SUM(WoundNumber) as TotalWN,
                  SUM(LoseMoney)   as TotalLM
           FROM Accident_Report
           GROUP BY DatePart(mm,Date) 
          ) b
          ON a.Mon=b.Mon
      

  5.   


    应该不会,我用的是LEFT JOIN ,12个月都会有显示的。你先试一下咯,我没测,随手写的。
      

  6.   

    如果表中加上UnitId,就是单位编号,这个字段上面的怎么改啊
      

  7.   


    SELECT a.Mon,
            ISNULL(b.UnitId,'') as UnitId,
            ISNULL(b.TotalDN,0) as TotalDN,
            ISNULL(b.TotalWN,0) as TotalWN,
            ISNULL(b.TotalLM,0) as TotalLM
     FROM 
         (
          SELECT 1 as Mon UNION ALL 
          SELECT 2 as Mon UNION ALL 
          SELECT 3 as Mon UNION ALL 
          SELECT 4 as Mon UNION ALL 
          SELECT 5 as Mon UNION ALL 
          SELECT 6 as Mon UNION ALL 
          SELECT 7 as Mon UNION ALL 
          SELECT 8 as Mon UNION ALL 
          SELECT 9 as Mon UNION ALL 
          SELECT 10 as Mon UNION ALL 
          SELECT 11 as Mon UNION ALL 
          SELECT 12 as Mon 
          ) a LEFT JOIN 
          (
           SELECT DatePart(mm,Date) as Mon,
                  MIN(UnitId)      as UnitId
                  SUM(DeathNumber) as TotalDN,
                  SUM(WoundNumber) as TotalWN,
                  SUM(LoseMoney)   as TotalLM
           FROM Accident_Report
           GROUP BY DatePart(mm,Date) 
          ) b
          ON a.Mon=b.Mon
      

  8.   

    GROUP BY DatePart(mm,Date),UnitId