关键字 'GROUP' - MA 附近的语法不正确



我正试图将我所有的库存运动纳入2015年或2016年的桶中。在我的From Select部分查询中,我让它工作,但它为每个项目提供了2行,第一行为2015年的数量和2016年的0,2015年为0,第二行为2016年的数量。因此,我认为我可以查询select语句和组,以便为每个项目获取一行。但我得到一个"不正确的语法附近的关键字'GROUP'"错误。有人能告诉我正确的方向吗?错误发生在From子句之外的第二个Group By上。谢谢。

SELECT [Item]
    ,[Item Desc]
    ,sum[2015 Usage]
    ,sum[2016 Usage]
FROM (SELECT 
          mtm.[item] 'Item'
          ,im.[description] 'Item Desc'
          ,case when year(convert(varchar(10), convert(date,mtm.[trans_date],1),101))='2015' then sum(mtm.[qty]) else 0 end '2015 Usage'
          ,case when year(convert(varchar(10), convert(date,mtm.[trans_date],1),101))='2016' then sum(mtm.[qty]) else 0 end '2016 Usage'
  FROM [ITEC_App].[dbo].[matltran_mst] mtm, [ITEC_App].[dbo].[item_mst] im
  WHERE
    mtm.[item] = im.[item]
    and
    mtm.[trans_type] NOT IN ('A', 'B', 'C', 'F', 'G', 'H', 'M', 'N', 'R')
    and
    mtm.[ref_type] NOT IN ('P')
  GROUP BY
    mtm.[item]
    ,im.[description]
    ,year(convert(varchar(10), convert(date,mtm.[trans_date],1),101)))
GROUP BY
    [Item]
    ,[Item Desc]

子查询是这样的:

  (
  SELECT . . .
  GROUP BY
    mtm.[item]
    ,im.[description]
    ,year(convert(varchar(10), convert(date,mtm.[trans_date],1),101))
 )

在SQL Server中,所有子查询都需要一个表别名。所以,你只需要添加一个:

  (
  SELECT . . .
  GROUP BY
    mtm.[item]
    ,im.[description]
    ,year(convert(varchar(10), convert(date,mtm.[trans_date],1),101))
 ) i

相关内容

最新更新