1

我有一个包含 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 个)的解决方案是什么?

每个例子:

  • 日总和
  • 1 2301
  • 2 2905
  • 3 1700
  • ……
4

3 回答 3

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

看 sql demo 为你解答

于 2013-06-26T10:33:30.707 回答
1

您可以尝试运行此查询。

SELECT SUM(value) as Sum
FROM [DB].[table] 
WHERE 
CONVERT(Date,dtStart )  
    BETWEEN CONVERT(DATE, GETDATE()) 
    AND
    DATEADD(DAY,1,GETDATE())
于 2013-06-26T12:32:19.997 回答
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

于 2013-06-26T10:23:22.577 回答