日期:2014-05-17  浏览次数:20376 次

请教一条关于SQL2000的合并统计的语句
Create Table 销售单据
(
  ID                   int                  IDENTITY,
  单据编号             varchar(50)          NOT NULL,
  销售日期             datetime             NOT NULL,
  客户名称             varchar(50)          NOT NULL,
  订单编号             varchar(50)          NOT NULL,
  物品名称             varchar(50)          NOT NULL,
  长度                 varchar(50)          NOT NULL,
  宽度                 varchar(50)          NOT NULL,
  数量                 varchar(50)          NOT NULL,
  面积                 varchar(50)          NOT NULL,
  单价                 varchar(50)          NOT NULL,
  金额                 varchar(50)          NOT NULL,
  磨边                 varchar(50)          NOT NULL,
  打孔                 varchar(50)          NOT NULL,
  其他费用             varchar(50)          NOT NULL
)
这是一个表存储的单据数据,要统计出如下表:


单据编号 销售日期 客户名称 总数量 总金额(金额+磨边+打孔+其他费用)


我这样写:SELECT 单据编号,SUM(数量),SUM(金额+磨边+打孔+其他费用 ) FROM 销售单据  GROUP BY 单据编号,客户
大侠们我错哪了?

------解决方案--------------------
你字段都设置的字符型,相加只是字符拼接,需要字符转换

SELECT 单据编号,SUM(cast 数量 as int)
,SUM(cast(金额 as decimal(18,2))+cast(磨边 as decimal(18,2))
+cast(打孔 as decimal(18,2))+cast(其他费用 as decimal(18,2))) 
FROM 销售单据  GROUP BY 单据编号,客户

------解决方案--------------------
SELECT 单据编号,客户名称,SUM(数量*1),SUM(金额*1+磨边*1+打孔*1+其他费用*1) FROM 销售单据