一个sql语句之Group By 和Having的应用

//文档基本表
Create table Doc(
DocID nvarchar(50),
DocName nvarchar(50)
)

给这张表手工添加两条记录
Insert into Doc(DocID,DocName) Values('1','test1')
Insert into Doc(DocID,DocName) Values('2','test2')

//文档属性对应表
Create table DocAttrues(
DocID nvarchar(50),
TypeID nvarchar50

//TypeID表示文档对应属性的ID,一个文档可以对应多个属性
给这张表插入

Insert into Doc(DocID,TypeID ) Values('1','Type1')
Insert into Doc(DocID,TypeID ) Values('1','Type2')
Insert into Doc(DocID,TypeID ) Values('2','Type2')

要求选出同时满足有属性Type1和Type2的文档ID 根据表数据得到答案应该“1




select Docid from DocAttrues where typeid in ('type1','type2') group by docid having count(*)>=2
posted @ 2012-03-27 09:00  轻拍水面  阅读(120)  评论(0)    收藏  举报