mysql存储过程操作表

设表如下NameIDValue1023410234102331055410233105531044310443以上是源数据表创建一个新表NameIDValue1Value... 设 表如下

NameID Value
1023 4
1023 4
1023 3
1055 4
1023 3
1055 3
1044 3
1044 3
以上是源数据表
创建一个新表
NameID Value1 Value2
1023 2 2
1044 0 2
1055 1 1

实现源表查询到把数据插入到新表的Sql 语句怎么写

另外有源表
NameID Value bi
1023 100 1
1023 500 1
1023 300 0
1055 150 1
1055 150 1
1055 200 0
1044 800 1
创建一个新表 并 通过存储过程执行 最后如下
NameID Value1 Value12
1023 600 300
1055 300 200
1044 0 800

实现源表查询到把数据插入到新表的Sql 语句怎么写
展开
 我来答
百度网友f9f2af3
2012-11-30 · TA获得超过357个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:236万
展开全部
1. select nameid,case value when 4 then count(*) else 0 end as value1,case value when 3 then count(*) else 0 end as value2 into 新表 from 表 group by nameid,value

2. create proc dbo.名储过程名称 As
create table 新表(nameid int,value1 int,value12 int)
insert into 新表(nameid,value1,value12)
select nameid,case bi when 1 then sum(value) else 0 end,case bi when 0 then sum(value) else 0 end from 表 group by nameid
zsf141
2012-11-30
知道答主
回答量:28
采纳率:0%
帮助的人:5.4万
展开全部
INSERT INTO b
(NameID,value1,value2)
SELECT DISTINCT
x.NameID,
(SELECT
COUNT(tvalue)
FROM a
WHERE a.NameID = x.NameID
AND a.tvalue = '3') value1,
(SELECT
COUNT(tvalue)
FROM a
WHERE a.NameID = x.NameID
AND a.tvalue = '4') value1
FROM a x
a 为原表,b为新表,x为表的别称
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式