假设Table的数据内容如下:
ProductID TypeID IsFault
-----------------------------------
6072 1 1
6072 1 0 <----这里CountOfFault++
6072 1 0 <----这里CountOfFault不变,因为该ProductID已经计算过了
5780 1 1
5780 1 1
6115 2 1
5781 2 0 <----这里CountOfFault++
5781 2 1
6098 2 1
6038 2 1
5998 2 0 <----这里CountOfFault++
-----------------------------------
现在我想得到这样的数据:
TypeID CountOfType CountOfFault
----------------------------------------------------------------------
1 2 1
2 4 2
----------------------------------------------------------------------
注:
TypeID:类型ID
CountOfType:每个TypeID中ProductID的个数(非重复值)
CountOfFalt:该字段是分类统计不同的TypeID中相同ProductID里bit出现0的个数
想了大半天,终于给我凑出来了,唉~~水平有限~~~
select TypeID,
CountOfType = count(distinct ProductID),
CountOfFault = (select count(distinct ProductID) from Table Table_Temp
where Table.TypeID = Table_temp.TypeID and IsFault = 0)
from Table
group by Table.TypeID
接下来问题来了:
如果Table是由Table1和Table1两张表分开存储的。
Table1数据如下:
ProductID IsFault
-----------------------------------
6072 1
6072 0
6072 0
5780 1
5780 1
6115 1
5781 0
5781 1
6098 1
6038 1
5998 0
-----------------------------------
Table2数据如下:
ProductID TypeID
-----------------------------------
6072 1
6072 1
6072 1
5780 1
5780 1
6115 2
5781 2
5781 2
6098 2
6038 2
5998 2
-----------------------------------
那么这个查询的该这么写呢?
[此贴子已经被作者于2006-6-26 15:33:51编辑过]