一条好友统计信息的sql语句的求助
我有一张好友请求表,
FROMID TOID STATE
意思是谁请求了谁,状态是什么,STATE =1 表示同意,0 表示未同意
select TOID,count(case when STATE = 1 then 1 else null end) as friendnum,COUNT(CASE WHEN STATE = 0 THEN 1 ELSE NULL END) AS unreplynum,NOW() from `INVITE_RECORD` group by TOID order by null
得到记录
900 , 0 , 10
912 , 0 , 10
930 , 0 , 10
现在我有另外一个请求统计表,我想统计上面的记录到下面这样的表
(不用view,这里统计不需要实时,那样统计有点慢)
TOID friendnum unreplynum
900 , 0 , 0
912 , 0 , 0
930 , 0 , 0
请求统计表 里面是存在TOID的主键了的
不知道这个update 语句应该怎么写
------解决方案----------------------你的不是SQL SERVER语法。SQL SERVER参考如下:
UPDATE B
SET B.friendnum = a.friendnum,
b.unreplynum = a.unreplynum
FROM
(
SELECT TOID ,
COUNT(CASE WHEN STATE = 1 THEN 1
ELSE NULL
END) AS friendnum ,
COUNT(CASE WHEN STATE = 0 THEN 1
ELSE NULL
END) AS unreplynum ,
GETDATE()
FROM INVITE_RECORD
GROUP BY TOID
) a
INNER JOIN yourNewtable B
ON a.TOID = b.TOID