帮忙看下这个语句
select   right(客户,len(客户)-charindex( '- ',客户))as   客户,   数量,   金额 
 FROM 
          (select   distinct   客户,null   as   数量,null   as   金额   from   表                     union 
 select   客户+ '- '+商品+规格,sum(数量),sum(金额)   from   表   group   by   客户,商品,规格)T   
 表的格式是这样的:   
 客户      商品         规格      数量         金额         日期 
 张三      电脑         x32         10               100            2007-01-01 
 张三      电脑         x32         20               200            2007-01-03 
 李四      电脑         x32         10               100            2007-01-02 
 张三      手机                           10               200            2007-01-20   
 想要这样的结果:   
 客户               数量         金额         日期 
 张三                                                         2007-01-20      (这里日期取同客户的最大日期) 
 电脑x32      30               300            2007-01-03      (这里日期取同商品同规格的最大日期) 
 手机               10               200            2007-01-20 
 李四 
 电脑x32      10               100            2007-01-02   
 但是用上面的语句运行之后没有规格的商品显示不出来.还有就是用这个语句如何取最大日期,就是要求的那样?   
------解决方案--------------------人在网吧,没有测试环境,如果没有写对请间谅   
 SELECT 客户,数量,金额,日期 
 FROM 
 ( 
 SELECT 商品+规格 AS 客户,SUM(数量) AS 数量,SUM(金额) AS 金额,max(日期) AS 日期,1 as flag 
 FROM  表 GROUP BY 客户,商品+规格,数量 
 UNION ALL 
 SELECT 客户,null,null,max(日期),0 as flag FROM 表 GROUP BY 客户 
 ) A ORDER BY 客户,flag
------解决方案--------------------select 客户, 数量=NULL, 金额=NULL, 日期=max(日期) 
 from T 
 group by 客户 
 union all 
 select 商品=商品+isnull(规格,  ' '), 数量=sum(数量), 金额=sum(金额), 日期=max(日期) 
 from T 
 group by 客户, 商品+isnull(规格,  ' ')
------解决方案--------------------create table T(客户 varchar(10), 商品 varchar(10), 规格 varchar(10), 数量 int, 金额 int, 日期 datetime) 
 insert T select   '张三 ',   '电脑 ',    'x32 ',   10,     100,     '2007-01-01 ' 
 union all select  '张三 ',   '电脑 ',    'x32 ',   20,     200,     '2007-01-03 ' 
 union all select  '李四 ',   '电脑 ',    'x32 ',   10,     100,     '2007-01-02 ' 
 union all select  '张三 ',   '手机 ',   NULL,      10,     200,     '2007-01-20 '   
 select tmp.客户, tmp.数量, tmp.金额, tmp.日期  
 from 
 ( 
 select 客户, 数量=NULL, 金额=NULL, 日期=max(日期), sort=客户 
 from T 
 group by 客户 
 union all 
 select 商品=商品+isnull(规格,  ' '), 数量=sum(数量), 金额=sum(金额), 日期=max(日期), sort=客户 
 from T 
 group by 客户, 商品+isnull(规格,  ' ') 
 )tmp 
 order by tmp.sort desc, tmp.数量   
 --result 
 客户                   数量          金额          日期                                                      
 -------------------- ----------- ----------- -----------------