日期:2014-05-18  浏览次数:20522 次

求一条SQL语句,谢谢大家!
class表
id       count(detail表中,属于此类的记录数)
1             2
2             1  
3             0

detail表
id     classid(与class表关联)
1         1
2         1
3         2

我想通过一条SQL语句或存储过程,
根据detail表中指定类的记录数,更新class表的count字段

------解决方案--------------------
create trigger t
on detail
for insert,update,delete
as

update class set count = b.c
from class a
inner join (select classid,count(*) as c from detail group by classid)b
on a.id = b.classid
------解决方案--------------------
根据detail表中指定类的记录数

是什么意思啊?
------解决方案--------------------
create table class(id int, [count] int)
insert class select 1, null
insert class select 2, null
insert class select 3, null
create table detail(id int, classid int)
insert detail select 1, 1
union all select 2, 1
union all select 3, 2

update class set [count]=isnull(B.[count], 0)
from class A
left join
(
select classid, [count]=count(*) from detail group by classid
)B on A.id=B.classid

select * from class

--result
id count
----------- -----------
1 2
2 1
3 0

(3 row(s) affected)
------解决方案--------------------
where id in ( '1 ', '2 ', '3 ', '4 ')