嗨,我是新来的,所以请对我好一点,我已经创建了一个SQL视图,并且需要先在sql中过滤此视图,然后再将数据加载到excel中,我只想将数据过滤到本月。
SQL是
SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn
然后返回此
答案 0 :(得分:1)
我强烈建议您使用可以使用索引的版本:
SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn
WHERE DocumentDate >= DATEADD(DAY, 1, EOMONTH(GETDATE(), -1)) AND
DocumentDate < DATEADD(DAY, 1, EOMONTH(GETDATE());
由于没有对DocumentDate
应用任何函数,因此优化程序将能够使用索引。
请注意,EOMONTH()
自SQL Server 2012起可用。早期版本中有等效的方法。
答案 1 :(得分:0)
您可以使用月份功能获取月份号并进行过滤。
SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn where month(DocumentDate)=9 and Year(DocumentDate)=2018
答案 2 :(得分:0)
您需要将文档的月/年与当前月/年进行比较。
SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn
WHERE MONTH(DocumentDate) = MONTH(getdate())
AND YEAR(DocumentDate) = YEAR(getdate())