关于sql语句怎么写两张表的关联并分组汇总
发布网友
发布时间:2022-04-08 03:18
我来回答
共4个回答
热心网友
时间:2022-04-08 04:47
这实际上是列更换及分组汇总的问题:
请注意,进货表名用“order”会产生关键字冲突,下面代码用方括号[order]以区别于排序用关键字order,至于syabese对有关键字冲突的表名是否也是用方括号,请参阅联机说明。一般来说,不同的数据库都是采用方括号防止关键字冲突。下面代码在ACCESS和SQLSERVER均检验通过,相信syabese也没问题。为了避免冲突可以为进货表改名。
select t.gdno,sum(t.qty_sales) as sum_qty_sales,sum(t.qty_order)
as sum_qty_order from (select gdno,qty as qty_sales,0 as qty_order
from sales union all select gdno,0 as qty_sales,qty as qty_order
from [order])t group by t.gdno
试一试效果吧!注意用两表连接的办法,在两张表的gdno不能全部一一对应时可能会丢失部分数据,所以为了保证所有情况下都计算准确,我采用了UNION ALL 运算符。
热心网友
时间:2022-04-08 06:05
select s.gdno, s.qty as s_qty, o.qty as o_qty
from
(select gdno, SUM(qty) as qty from sales group by gdno) s
right join (select gdno, SUM(qty) as qty from [order] group by gdno) o on s.gdno = o.gdno
热心网友
时间:2022-04-08 07:40
select sales.gdno,
sum(sales.qty)/count(sales),
sum(order.qty)/count(order)
from sales,order
where sales.gdno = order.gdno
group by sales.gdno
热心网友
时间:2022-04-08 09:31
不明白,既然你货号不是主键,当你汇总的时候你怎么删除啊,你这问题有点奇怪哦。