SQL 求教:如何利用数据库中已有的数据,生成一个统计分析表

SQL 求教:如何利用数据库中已有的数据,生成一个统计分析表,第1张

--因为楼主想要求当biao1 、biao2 两表有新数据加入时,fenxi1表中的数据也自动增加,所以个人觉得在表biao1上建立一个触发器比较好,发现有insert动作,即在fenxi1表插入新数据并处理,注意点:

biao1跟biao2必须同时插入数据,不然后面计算‘生产人员五日平均数’时会出现错误,因为没经过现场测试,下面的代码仅供参考,基本思路是这样的;当然了,如果楼主的biao1中不会有新数据,仅想在原有数据进行统计,也可参考过程中update部分的语句

create trigger t_insert

on biao1

for insert

as

begin

insert into Fenxi1

select 货物代码,日期,0,0,0 from inserted

if @@error<>0

begin

raiserror 33334 '插入失败!'

rollback

return

end

update Fenxi1 set 五日平均生产量=(select avg(日生产量) from biao1 where datediff(day,日期,getdate())=4) where 货物代码=(select 货物代码 from inserted) and 统计日期=(select 日期 from inserted)

update Fenxi1 set 十日平均生产量=(select avg(日生产量) from biao1 where datediff(day,日期,getdate())=9) where 货物代码=(select 货物代码 from inserted) and 统计日期=(select 日期 from inserted)

update Fenxi1 set 生产人员五日平均数=(select avg(生产人员数) from biao2 where datediff(day,日期,getdate())=4) where 货物代码=(select 货物代码 from inserted) and 统计日期=(select 日期 from inserted)

if @@error<>0

begin

raiserror 33334 '更新失败!'

rollback

return

end

end

go

create table 新表名

as

你的sql语句

你的sql语句中,有字段用函数表示的,必须起别名

creata table 新的表名

as

select a,count(b) as bb from 表名 group by a

count(b)必须起别名,这里起的是bb


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6653779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存