首页新闻招聘找找看知识库

sql 问题求解答

0
悬赏园豆:100 [待解决问题]

A表数据会有增删改查,查询结果如下  求大神解答。

周黑鸭灬的主页 周黑鸭灬 | 初学一级 | 园豆:102
提问于:2018-06-14 09:33

都没有人帮忙吗!!!大神们你们在哪

周黑鸭灬 3个月前
< >
分享
所有回答(3)
0

这就是一个行转列的, 建议买一本《SQL Server 从入门到精通》看看。

搜索 sql server pivot 可以找到你要的答案。

爱编程的大叔 | 园豆:28203 (高人七级) | 2018-06-14 10:17

PIVOT 我用过 pivot (sum(nums) for name in ('苹果' 苹果, '橘子', '葡萄', '芒果'))  这个in里面的值必须是写死的  也属于单表操作

支持(0) 反对(0) 周黑鸭灬 | 园豆:102 (初学一级) | 2018-06-14 11:14

@周黑鸭灬: 

那个更简单了,

Select distinct name from tableA 这样就能得到所有的值,

然后你想办法把这些放到 in 里面去就行了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:28203 (高人七级) | 2018-06-14 11:36

@爱编程的大叔: 我查询出来的A表的name 放在in里面出不来结果  这个in指向的是B表的A_ID而不是A表的name

支持(0) 反对(0) 周黑鸭灬 | 园豆:102 (初学一级) | 2018-06-14 11:54

@周黑鸭灬: 不管A表还是B表,最终都是一个表。

你三个知识都会,要自己懂得把三个知识组合起来,而不是让别人帮你组合。

Select id, name, value from (select a.name, b. id,c, value from a, b ....) 这就变成一个新的表了

支持(0) 反对(0) 爱编程的大叔 | 园豆:28203 (高人七级) | 2018-06-14 12:57
0

首先你设计的表就不合理B表没有主键 id 是重复的

DanBrown | 园豆:1428 (小虾三级) | 2018-06-14 11:21

B表是一个中间表  我设置一个唯一主键ID对我的要求也没有任何影响

支持(0) 反对(0) 周黑鸭灬 | 园豆:102 (初学一级) | 2018-06-14 11:52
0

pivot (sum(nums) for name in ('苹果', '橘子', '葡萄', '芒果')) 

苹果,橘子之类的动态取,拼接成sql语句 exec执行

 

webaspx | 园豆:1955 (小虾三级) | 2018-06-26 20:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册