获得多个SQL查询

时间:2013-06-26 10:07:54

标签: sql sql-server timestamp

我有一个包含2个有趣条目的表格:

VALUE 包含整数条目, dtStart 包含时间戳(日期和时间)

我的实际查询是:

SELECT SUM(value) as Sum
  FROM [DB].[table] 
  WHERE AND dtStart BETWEEN '20130401 00:00:00.000' 
    AND '20130402 00:00:00.000'

有点令人失望,因为我需要一个查询来为我提供一天的解决方案,但我需要一整个月的每一天。现在我正在编辑每天的时间字段。 什么是在查询中每天获得多个查询(每天1个)的解决方案?

每个例子:

  • day sum
  • 1 2301
  • 2 2905
  • 3 1700
  • ......

3 个答案:

答案 0 :(得分:2)

SELECT
    SUM(valueAns) AS totalval,(ROW_NUMBER() OVER ( ORDER BY dtStart)) AS day,
  dtStart
FROM
    a group by CONVERT(DATE, dtStart) 

请参阅sql demo for you answer

答案 1 :(得分:1)

您需要GROUP BY一天,因为dtStart有时间,因此可以通过将其转换为DATE

来“删除”
SELECT DATEPART(DD, CONVERT(DATE, dtStart)) AS dtStartDay, SUM(value) as Sum
  FROM [DB].[table] 
 WHERE dtStart BETWEEN '2013-04-01' AND '2013-04-30'
GROUP BY CONVERT(DATE, dtStart)
ORDER BY CONVERT(DATE, dtStart)

编辑:看看你的输出我推荐使用DATEPART

答案 2 :(得分:1)

您可以尝试运行此查询。

SELECT SUM(value) as Sum
FROM [DB].[table] 
WHERE 
CONVERT(Date,dtStart )  
    BETWEEN CONVERT(DATE, GETDATE()) 
    AND
    DATEADD(DAY,1,GETDATE())