下面这个是access中的一个查询,功能是按月份和商品名称对商品销售进行汇总,若在sql server2000 中建立一个实现同样功能的视图该如何改写?谢谢!SELECT DISTINCTROW Format$([商品销售表].[销售时间],'mmmm yyyy') AS 销售时间, 商品销售表.商品编号, 商品销售表.商品名称, 商品销售表.所属大类, 商品销售表.所属小类, 商品销售表.型号, 商品销售表.单位, Sum(商品销售表.数量) AS 合计数量, Avg(商品销售表.零售单价) AS 平均零售单价, Avg(商品销售表.实售单价) AS 平均实售单价, Sum(商品销售表.实售金额) AS 合计实售金额, Avg(商品销售表.折扣) AS 平均折扣
FROM 商品销售表
GROUP BY Format$([商品销售表].[销售时间],'mmmm yyyy'), 商品销售表.商品编号, 商品销售表.商品名称, 商品销售表.所属大类, 商品销售表.所属小类, 商品销售表.型号, 商品销售表.单位, 商品销售表.客户名称, 商品销售表.操作人员, 商品销售表.销售人员, Year([商品销售表].[销售时间])*12+DatePart('m',[商品销售表].[销售时间])-1;

解决方案 »

  1.   

    sql server不支持format 函数,这里需要使用 cast 或者convert函数来转换关于这两个函数可以查看sql的联机帮助CAST 和 CONVERT
    将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。语法
    使用 CAST:CAST ( expression AS data_type ) 使用 CONVERT:CONVERT (data_type[(length)], expression [, style])参数
    expression是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。 data_type目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。 lengthnchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
      

  2.   

    SELECT DISTINCTROW CAST(YEAR([商品销售表].[销售时间]) AS CHAR(4))+'.'+CAST(MONTH(   [商品销售表].[销售时间]) AS CHAR(2)) AS 销售时间, 商品销售表.商品编号, 商品销售表.商品名称, 商品销售表.所属大类, 商品销售表.所属小类, 商品销售表.型号, 商品销售表.单位, Sum(商品销售表.数量) AS 合计数量, Avg(商品销售表.零售单价) AS 平均零售单价, Avg(商品销售表.实售单价) AS 平均实售单价, Sum(商品销售表.实售金额) AS 合计实售金额, Avg(商品销售表.折扣) AS 平均折扣
    FROM 商品销售表
    GROUP BY CAST(YEAR([商品销售表].[销售时间]) AS CHAR(4))+'.'+CAST(MONTH(   [商品销售表].[销售时间]) AS CHAR(2)),商品销售表.商品编号, 商品销售表.商品名称, 商品销售表.所属大类, 商品销售表.所属小类, 商品销售表.型号, 商品销售表.单位, 商品销售表.客户名称, 商品销售表.操作人员, 商品销售表.销售人员, Year([商品销售表].[销售时间])*12+DatePart('m',[商品销售表].[销售时间])-1;