1

我正在尝试按日期(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.Date,
          case_invoicetype 

我试过这个:

group by YEAR(case_createddate), MONTH(case_createddate)

但我得到了错误:

case_createddate 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 group by 子句中

有任何想法吗 ?

谢谢

4

2 回答 2

0

对整个表达式使用 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 
于 2013-07-31T14:31:29.653 回答
0

您需要在 group by 子句中包含 select 中的所有非聚合列。ca.Date不在选择中,我怀疑你想要这个:

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 
于 2013-07-31T14:31:56.873 回答