关于sql语句怎么写两张表的关联并分组汇总

比如有两张表,一张表是销售(货号、销售额),一张表是进货(货号、进价)其中两张表的“货号”均不是主键。如果两张表关联的话,记录数就是:销售记录数×进货记录数。再汇总数据就... 比如有两张表,一张表是销售(货号、销售额),一张表是进货(货号、进价)
其中两张表的“货号”均不是主键。
如果两张表关联的话,记录数就是:销售记录数×进货记录数。再汇总数据就不准了。
我以前想要两张表关联并汇总的做法是把其中一张表(销售表)货号汇总然后插入临时表里面,这张临时表的货号就是主键,然后再关联进货表,再汇总。
能否不建临时表,直接可以写sql 关联汇总。
楼下两个回答的不知道说些什么。听不懂还是不会就乱回答。
销售表:sales
gdno qty
01 10
01 5
进货表:order
01 15
01 12
select sales.gdno,
sum(sales.qty),
sum(order.qty)
from sales,order
where sales.gdno = order.gdno
group by sales.gdno
得出的结果是:
01 10 15
01 10 12 -----》 汇总:01 30 54
01 5 15
01 5 12
而我要的结果是:
01 15 27

下面的语句,pb + syabese 上通不过的。否则我也不问了。
展开
 我来答
tjrmgs
推荐于2017-11-24 · TA获得超过5764个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1005万
展开全部
这实际上是列更换及分组汇总的问题:
请注意,进货表名用“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 运算符。
百度网友a3acfe284
2011-05-26 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:30.3万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyfukk
2011-05-25 · TA获得超过1186个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:621万
展开全部
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
更多追问追答
追问
你写错了,没用
追答
说真的,我没有明白你现在的意思

销售记录数×进货记录数为什么?通常的销售和进货的关系都是+或-啊

临时表的结构又是什么样的?

你要的总汇是什么?是所有价格总和吗?

还有,为什么不用:
select a.gdno,sum(a.qty),sum(b.qty) from sales a,order b where a.gdno=b.gdno group by a.gdno
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3f4a3dfdf
2011-05-24 · TA获得超过183个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:92.2万
展开全部
不明白,既然你货号不是主键,当你汇总的时候你怎么删除啊,你这问题有点奇怪哦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式