首页新闻找找看学习计划

sql 问题求解答

0
悬赏园豆:100 [已解决问题] 解决于 2018-10-31 11:08

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

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

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

周黑鸭灬 6个月前
< >
分享
最佳答案
0

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

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

收获园豆:100
爱编程的大叔 | 高人七级 |园豆:28741 | 2018-06-14 10:17

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

周黑鸭灬 | 园豆:14 (初学一级) | 2018-06-14 11:14

@周黑鸭灬: 

那个更简单了,

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

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

爱编程的大叔 | 园豆:28741 (高人七级) | 2018-06-14 11:36

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

周黑鸭灬 | 园豆:14 (初学一级) | 2018-06-14 11:54

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

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

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

爱编程的大叔 | 园豆:28741 (高人七级) | 2018-06-14 12:57
其他回答(2)
0

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

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

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

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

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

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

 

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