现在我有一个查询语句,想写一个储存过程然后放到VISUAL STUDIO的图表里面,由于按日分组结果太多,图表显示太复杂
我写的代码如下:SELECT SUM(FT.[RANK]) AS totalscore, a.inputdate FROM BLOG a INNER JOIN containstable(BLOG, CONTENT, 'HAPPY') FT
ON a.BlogID = FT.[KEY]
WHERE inputdate BETWEEN '2006-01-01' AND '2007-0101'
GROUP BY ???????(这里不会写按星期排序) 求大大们指教

解决方案 »

  1.   


    SELECT SUM(FT.[RANK]) AS totalscore, DATEPART(week, a.inputdate),max(a.inputdate) as inputdate 
     FROM BLOG a INNER JOIN containstable(BLOG, CONTENT, 'HAPPY') FT
    ON a.BlogID = FT.[KEY]
    WHERE inputdate BETWEEN '2006-01-01' AND '2007-01-01'
    GROUP BY DATEPART(week, a.inputdate)
      

  2.   


    GROUP BY DATEPART(WEEK,a.inputdate) 
      

  3.   

    SELECT SUM(FT.[RANK]) AS totalscore, a.inputdate FROM BLOG a INNER JOIN containstable(BLOG, CONTENT, 'HAPPY') FT
    ON a.BlogID = FT.[KEY]
    WHERE inputdate BETWEEN '2006-01-01' AND '2007-0101'
    GROUP BY datepart(week,inputdate)
      

  4.   

    GROUP BY DATEPART(week, a.inputdate)
      

  5.   

    datepart,dateadd,datediff,熟练运用这几个函数,就可以方便求出,之如知道日期求星期几,知道星期几求日期等问题
      

  6.   

    SELECT * FROM 
    (SELECT aa.个数,aa.时间FROM [TableName] AS aa UNION ALL  --改table的表名即可,其它表名不需要改
    select '0',convert(varchar(10),dateadd(day,number,'2011-8-01'),120)
    from master..spt_values 
    WHERE type='p' and number between 0 and datediff(day,'2011-8-01','2011-8-10') 
    AND convert(varchar(10),dateadd(day,number,'2011-8-01'),120) NOT IN (SELECT 时间 FROM  [TableName])

    AS  cc
    ORDER BY cc.时间asc
      

  7.   

    SELECT SUM(FT.[RANK]) AS totalscore, datepart(wk,a.inputdate)as inputweek FROM BLOG a INNER JOIN containstable(BLOG, CONTENT, 'HAPPY') FT
    ON a.BlogID = FT.[KEY]
    WHERE inputdate BETWEEN '2006-01-01' AND '2007-0101'
    GROUP BY datepart(wk,a.inputdate)