有一张表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语句什么写:
------解决方案--------------------
- SQL code
--原始数据:@Adeclare @A table(StoveNo int,PotNo int,SamplingCause varchar(10))insert @Aselect 123,67,'取样成功' union allselect 123,68,'取样成功' union allselect 123,45,'取样成功' union allselect 124,98,'取样成功' union allselect 124,67,'取样成功' union allselect 124,56,'取样不成功' union allselect 223,34,'取样成功' union allselect 223,87,'取样不成功' union allselect 223,90,'取样不成功' union allselect 236,34,'取样成功' union allselect 236,87,'取样成功' union allselect 236,90,'取样不成功'select 成功=ltrim(cn)+'个罐',炉数=count(*) from(select StoveNo,cn=count(*) from @A where SamplingCause='取样成功' group by StoveNo) agroup by cn/*成功 炉数 ---------------- ----------- 1个罐 12个罐 23个罐 1*/