我在SQL Server 2012中工作。
我正在尝试收集当月(2015-07)的所有数据并对其进行分组。当我运行此查询时,它仅选择当天。
SELECT
YEAR, MONTH, IDWHSE, IDLOCATION, IDCUST,
SUM(PALLETDAYS) AS PALLETDAYS,
COUNT(*) AS LOCATIONDAYS
FROM
[METRICS].[dbo].[DailyData]
WHERE
DATE = CONVERT(date, DATEADD(MM, 0, GETDATE()))
GROUP BY
YEAR, MONTH, IDWHSE, IDLOCATION, IDCUST, PALLETDAYS
提前致谢
格里
答案 0 :(得分:1)
试试这个:
SELECT
YEAR, MONTH, IDWHSE, IDLOCATION, IDCUST,
SUM(PALLETDAYS) AS PALLETDAYS,
COUNT(*) AS LOCATIONDAYS
FROM
[METRICS].[dbo].[DailyData]
WHERE
MONTH(DATE) = MONTH(SYSDATETIME())
GROUP BY
YEAR, MONTH, IDWHSE, IDLOCATION, IDCUST, PALLETDAYS
使用MONTH()
函数,您可以获得月份编号 - 您的列Date
(这是一个非常糟糕的列名称,因为DATE
也是保留的SQL Server 2012中数据类型的关键字 - 尝试使用比Date
更有意义的东西!)和当前日期(我更喜欢SYSDATETIME()
函数而不是GETDATE()
)