这种统计用语句怎么写?
id  carid    count   date  
1    200710    50     2007-10-21
2    200710A   30     2007-10-21
3    200711    80     2007-10-21
4    200712    40     2007-10-21
5    200712A   20     2007-10-21
。。。。。。。。。。。。。。。。。。more
其中id 是自动的,carid带A的包含在不带A的数里,carid 只有这××××××和××××××A这两种形式
如何能统计出
carid   countA   count    
200710    30       50
200711     0       80
200712    20       40
。。。。。。。。。。。。。more
不知道大家看明白没有?
------解决方案--------------------create table table1(id int,carid varchar(7),[count] int,[date] datetime);
go
insert into table1
select 1,'200710 ',50,'2007-10-21'
union select 2,'200710A',30,'2007-10-21'
union select 3,'200711 ',80,'2007-10-21'
union select 4,'200712 ',40,'2007-10-21'
union select 5,'200712A',20,'2007-10-21'
go
select * from table1
select left(carid,6) as carid,sum(case when carid like  '%A' then count else 0 end) as countA,sum(case when carid like  '%A' then 0 else count end) as count from table1 group by left(carid,6)
go
drop table table1
(5 行受影响)
id          carid   count       date
----------- ------- ----------- -----------------------
1           200710  50          2007-10-21 00:00:00.000
2           200710A 30          2007-10-21 00:00:00.000
3           200711  80          2007-10-21 00:00:00.000
4           200712  40          2007-10-21 00:00:00.000
5           200712A 20          2007-10-21 00:00:00.000
(5 行受影响)
carid   countA      count
------- ----------- -----------
200710  30          50
200711  0           80
200712  20          40
(3 行受影响)
------解决方案--------------------SQL code
create table tb(id int, carid varchar(10),[count] int, date datetime)
insert into tb values(1,    '200710' ,   50,     '2007-10-21') 
insert into tb values(2,    '200710A',   30,     '2007-10-21') 
insert into tb values(3,    '200711' ,   80,     '2007-10-21') 
insert into tb values(4,    '200712' ,   40,     '2007-10-21') 
insert into tb values(5,    '200712A',   20,     '2007-10-21') 
go
select t1.carid , isnull(t2.countA,0) countA,t1.[count] from
(select left(carid,6) carid, sum([count]) [count] from tb group by left(carid,6)) t1 
left join
(select carid , sum([count]) countA from tb where len(carid) = 7 group by carid) t2
on t1.carid = left(t2.carid,6)
drop table tb
/*
carid      countA      count       
---------- ----------- ----------- 
200710     30          80
200711     0           80
200712     20          60
(所影响的行数为 3 行)
*/