SQl,多个问题(连接中的参数和将列放入行中
我尝试按日期mm/yyyy对表进行分组,然后按发票类型对表进行分组,我尝试输入下面的代码,但不断收到错误“无效列日期”SQl,多个问题(连接中的参数和将列放入行中,sql,sql-server,Sql,Sql Server,我尝试按日期mm/yyyy对表进行分组,然后按发票类型对表进行分组,我尝试输入下面的代码,但不断收到错误“无效列日期” SELECT RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7) AS Date, case_invoicetype, Sum(case_totalexvat) FROM cases AS ca WHERE case_primaryCompanyid = 1111 GROUP BY ca
SELECT RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7) AS Date,
case_invoicetype,
Sum(case_totalexvat)
FROM cases AS ca
WHERE case_primaryCompanyid = 1111
GROUP BY ca.Date,
case_invoicetype
我试过这个:
group by YEAR(case_createddate), MONTH(case_createddate)
但我得到了一个错误:
case_createddate在选择列表中无效,因为它不是
包含在聚合函数或group by子句中
有什么想法吗
谢谢在整个表达式中使用GROUP BY子句
SELECT RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7) AS Date,
case_invoicetype,
Sum(case_totalexvat)
FROM cases AS ca
WHERE case_primaryCompanyid = 1111
GROUP BY RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7),
case_invoicetype
您需要在group by子句中包含select中的所有非聚合列。ca。日期不在select中,我猜想您希望这样:
SELECT RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7) AS Date,
case_invoicetype,
Sum(case_totalexvat)
FROM cases AS ca
WHERE case_primaryCompanyid = 1111
GROUP BY RIGHT(CONVERT(VARCHAR(10), case_createddate, 103), 7),
case_invoicetype
谢谢Alexander,修复了它,只是不确定语法