想请教各位论坛大神一下,有没有合并相同的数据的sql查询如下。

用戶ID080 2018-03-01 03:24:07


请教一下,这4张表,怎么能把他们pirce相加在一起,就是
比如area(B),subarea(1),把pirce加在一起,
如果其他表没有area(B),subarea(1)就加上0.
每个表的tsql代码都不一样,连在一起查,数据太大还不对,而且查询过慢,
谁有类似方法可以推荐一下吗?
拜托了。
...全文
519 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
用戶ID080 2018-03-01
  • 打赏
  • 举报
回复
引用 8 楼 sinat_28984567 的回复:
[quote=引用 7 楼 qq_37239602 的回复:] [quote=引用 4 楼 sinat_28984567 的回复:] [quote=引用 3 楼 qq_37239602 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea
因为每个表的数据不一样,重新建表是不可能,不可能就这三列数据,之前的表数据也多。您说的4个表放到一个表里是什么意思呢?[/quote] 四个表的表结构不一样是吗?[/quote] 不一样,没事 2楼的结果是对的,一开始没有想到分组[/quote] 额,表结构不一样用UNION ALL不报错?[/quote] 我都分组的 分成一样的数据啦。
二月十六 2018-03-01
  • 打赏
  • 举报
回复
引用 7 楼 qq_37239602 的回复:
[quote=引用 4 楼 sinat_28984567 的回复:] [quote=引用 3 楼 qq_37239602 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea
因为每个表的数据不一样,重新建表是不可能,不可能就这三列数据,之前的表数据也多。您说的4个表放到一个表里是什么意思呢?[/quote] 四个表的表结构不一样是吗?[/quote] 不一样,没事 2楼的结果是对的,一开始没有想到分组[/quote] 额,表结构不一样用UNION ALL不报错?
用戶ID080 2018-03-01
  • 打赏
  • 举报
回复
引用 4 楼 sinat_28984567 的回复:
[quote=引用 3 楼 qq_37239602 的回复:] [quote=引用 1 楼 sinat_28984567 的回复:] 如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea
因为每个表的数据不一样,重新建表是不可能,不可能就这三列数据,之前的表数据也多。您说的4个表放到一个表里是什么意思呢?[/quote] 四个表的表结构不一样是吗?[/quote] 不一样,没事 2楼的结果是对的,一开始没有想到分组
用戶ID080 2018-03-01
  • 打赏
  • 举报
回复
引用 5 楼 yenange 的回复:
没别的办法, 只能动态SQL. 你写一个存储过程, 传表名进去, 里面用动态SQL, 先判断哪些表有里你需要的字段, 哪些表没有, 然后把SQL组合一下就可以了。 说个思路, 懒得写了
嗯 2楼的结果是对的,一开始没有想到分组
吉普赛的歌 2018-03-01
  • 打赏
  • 举报
回复
没别的办法, 只能动态SQL. 你写一个存储过程, 传表名进去, 里面用动态SQL, 先判断哪些表有里你需要的字段, 哪些表没有, 然后把SQL组合一下就可以了。 说个思路, 懒得写了
二月十六 2018-03-01
  • 打赏
  • 举报
回复
引用 3 楼 qq_37239602 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:] 如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea
因为每个表的数据不一样,重新建表是不可能,不可能就这三列数据,之前的表数据也多。您说的4个表放到一个表里是什么意思呢?[/quote] 四个表的表结构不一样是吗?
用戶ID080 2018-03-01
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea
因为每个表的数据不一样,重新建表是不可能,不可能就这三列数据,之前的表数据也多。您说的4个表放到一个表里是什么意思呢?
中国风 2018-03-01
  • 打赏
  • 举报
回复
参照:
select 
area,subarea,sum(price) AS price
from (select * from table1
union all
select * from table2
union all
select * from table3
union all
select * from table4
) as t
group by area,subarea
二月十六 2018-03-01
  • 打赏
  • 举报
回复
如果关联查询太慢,试试把四个表的数据放到一个表里,然后
select area,subarea,sum(price) from 新表 group by area,subarea

594

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧