有一张表A
StoveNo(炉次)PotNo(罐号)SamplingCause(结果)
123 67 取样成功
123 68 取样成功
123 45 取样成功
124 98 取样成功
124 67 取样成功
124 56 取样不成功
223 34 取样成功
223 87 取样不成功
223 90 取样不成功
236 34 取样成功
236 87 取样成功
236 90 取样不成功
等等还有其它数据
每个相同的炉次都有三个不同的罐号,三个罐取样的结果肯定有一个是成功取样的
现在我要查询的结果如下:
成功取样一个罐有多少炉:
成功取样二个罐有多少炉:
成功取样三个罐有多少炉:
如看上面提供的数据该结果如下:一个罐炉数为:1 ;两个罐的炉数为:2;三个罐的炉数为:1
请问要实现该结果SQL语句什么写:
StoveNo(炉次)PotNo(罐号)SamplingCause(结果)
123 67 取样成功
123 68 取样成功
123 45 取样成功
124 98 取样成功
124 67 取样成功
124 56 取样不成功
223 34 取样成功
223 87 取样不成功
223 90 取样不成功
236 34 取样成功
236 87 取样成功
236 90 取样不成功
等等还有其它数据
每个相同的炉次都有三个不同的罐号,三个罐取样的结果肯定有一个是成功取样的
现在我要查询的结果如下:
成功取样一个罐有多少炉:
成功取样二个罐有多少炉:
成功取样三个罐有多少炉:
如看上面提供的数据该结果如下:一个罐炉数为:1 ;两个罐的炉数为:2;三个罐的炉数为:1
请问要实现该结果SQL语句什么写:
declare @A table(StoveNo int,PotNo int,SamplingCause varchar(10))
insert @A
select 123,67,'取样成功' union all
select 123,68,'取样成功' union all
select 123,45,'取样成功' union all
select 124,98,'取样成功' union all
select 124,67,'取样成功' union all
select 124,56,'取样不成功' union all
select 223,34,'取样成功' union all
select 223,87,'取样不成功' union all
select 223,90,'取样不成功' union all
select 236,34,'取样成功' union all
select 236,87,'取样成功' union all
select 236,90,'取样不成功'select 成功=ltrim(cn)+'个罐',炉数=count(*) from
(select StoveNo,cn=count(*) from @A where SamplingCause='取样成功' group by StoveNo) a
group by cn/*
成功 炉数
---------------- -----------
1个罐 1
2个罐 2
3个罐 1
*/
select 成功=ltrim(cn)+'个罐',炉数=count(*) from
(select StoveNo,cn=count(*) from 你的真实表名 where SamplingCause='取样成功' group by StoveNo) a
group by cn
select 123,68,'取样成功' union all
select 123,45,'取样成功' union all
select 124,98,'取样成功' union all
select 124,67,'取样成功' union all
select 124,56,'取样不成功' union all
select 223,34,'取样成功' union all
select 223,87,'取样不成功' union all
select 223,90,'取样不成功' union all
select 236,34,'取样成功' union all
select 236,87,'取样成功' union all
select 236,90,'取样不成功'这些代码有点问题:A表里面数据不单纯就这几个,可能还有很多很多啊。。
select 炉次,coutn(*) from A where 结果 like' 取样成功'
group by 炉次