Sql DATEPART函数如何按年度、季度、月份和日期查询供应商发票

Sql DATEPART函数如何按年度、季度、月份和日期查询供应商发票,sql,reporting-services,Sql,Reporting Services,您知道我的SQL Server SSRS查询缺少什么吗?我正在尝试按年度、季度、月份和日期提取供应商发票,仅从2019年1月到12月。我的输出应按以下信息分组,年/季度/月/自创建日期 运行查询后,出现以下错误: 味精102,第15级,状态1,第32行 “年”附近的语法不正确 可能是什么问题 我的代码已在以下网站链接中进行了解释,为了便于参考,我将我的代码详细信息包括在内,以便更好地进行解释: 我尝试了以下代码: SELECT DISTINCT DATEPART("YEAR",

您知道我的SQL Server SSRS查询缺少什么吗?我正在尝试按年度、季度、月份和日期提取供应商发票,仅从2019年1月到12月。我的输出应按以下信息分组,年/季度/月/自创建日期

运行查询后,出现以下错误:

味精102,第15级,状态1,第32行
“年”附近的语法不正确

可能是什么问题

我的代码已在以下网站链接中进行了解释,为了便于参考,我将我的代码详细信息包括在内,以便更好地进行解释:

我尝试了以下代码:

SELECT DISTINCT
        DATEPART("YEAR", ab.Created_Date) [year], 
        DATEPART("QUARTER", ab.Created_Date) [quarter], 
        DATEPART("MONTH", ab.Created_Date) [month],
        ab.Invoice_Type_ID,
        ab.Created_Date,
        ab.Vendor_ID,
        a.Vendor_Name,
        a.Vendor_Type
FROM 
    dbo.vendors AS a
INNER JOIN
    dbo.invoices AS ab ON a.Vendor_ID = ab.Vendor_ID
WHERE   
    ab.Created_Date IS NOT NULL
GROUP BY  
    DATEPART("YEAR", ab.Created_Date) [year], 
    DATEPART("QUARTER", ab.Created_Date) [quarter], 
    DATEPART("MONTH", ab.Created_Date) [month],
    ab.Invoice_Type_ID,
    ab.Created_Date,
    ab.Vendor_ID,
    a.Vendor_Name,
    a.Vendor_Type
ORDER BY  
    [YEAR] DESC, 
    [QUARTER], 
    [MONTH]

您已经通过表达式将别名([year]、[quarter]、[month])包括在组中,例如,您需要删除别名(但不删除表达式)

GROUP BY DATEPART("YEAR", ab.Created_Date) [year],
...
会是

GROUP BY DATEPART("YEAR", ab.Created_Date),
...

在分组时,您几乎不需要执行“选择清晰”,因为分组可以消除重复项。难以置信的是,这非常有效,完全符合我的要求。非常感谢。