0

我正在制作 SQL-server 2008 r2 中的存储过程。已经完成了 SELECT 并完成了所有事情,但是在将我的 datepart 与 Dateadd 和 getdate 结合起来时遇到了一些问题。问题是我想在查询中这样显示它。

2013-06 2013-07 2013-08

所以我尝试使用这段代码,但我不断收到无效的语法......

and Datepart(yy, Column) = 2013

但我不希望它被硬编码,因为使用该系统的人应该每个月都可以打印它。这就是为什么我在想 getdate-1

DATEPART(MM,DATEADD(MM,-1 GETDATE())

我想组合硬代码并将其更改为较低的。SELECT 代码现在看起来像这样。

INSERT INTO #EXCEL(COL1,COL2,COL3)
SELECT SUM (AVERAGE) / COUNT DISTINCT(TABLE.COLUMN)
FROM TABLE
INNER JOIN TABLE1 ON TABLE2.COLUMN = BLA BLA 
WHERE SOMETHING = X
AND DATEPART(YY,COLUMNDATE) = 2013
AND DATEPART(MM,COLUMNDATE) = 8

我想使用我的 getdate 组合,但我不断收到语法错误。

4

2 回答 2

2

试试这个——

--SELECT SUM(AVERAGE) / COUNT(DISTINCT t.[COLUMN])
--FROM dbo.[TABLE] t
--JOIN dbo.TABLE1 t2 ON t2.[COLUMN] = 'BLA BLA...' 
--WHERE SOMETHING = X
    AND YEAR(COLUMNDATE) = YEAR(GETDATE())
    AND MONTH(COLUMNDATE) = MONTH(GETDATE())
于 2013-08-28T09:10:31.093 回答
1

因此,对于那些有同样烦恼的人来说,这就是答案。

AND DATEPART(YY,COLUMNDATE) = DATEPART(YY,DATEADD(MM, -1, GETDATE()))
于 2013-08-28T09:12:16.313 回答