请教

peanut2008 2010-11-10 11:10:23
以下两个语句能否实现在资金明细表、订单总价两张表中按工作令号和订单编号聚合

SELECT 工作令号,订单编号,sum(本批定额资金)as a
FROM 资金明细表
group by 工作令号,订单编号

SELECT 工作令号,订单编号,sum(订单材料总价)as b
FROM 订单总价
group by 工作令号,订单编号

然后得到一张包含两张表中所有不同的工作令号、订单编号聚合、a、b、a-b,格式如下:
工作令号 | 订单编号 |a | b |a-b

...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
peanut2008 2010-11-10
  • 打赏
  • 举报
回复
谢谢dawugui和各位,在问一下:“group by 工作令号,订单编号”这一句不会把工作令号聚合后丢掉某些订单编号,或者把工作令号丢掉?
dawugui 2010-11-10
  • 打赏
  • 举报
回复
select isnull(m.工作令号,n.工作令号) 工作令号,
isnull(m.订单编号,n.订单编号) 订单编号,
isnull(m.a,0) a,
isnull(n.b,0) b,
isnull(m.a,0) - isnull(n.b,0) [a-b]
from
(
SELECT 工作令号,订单编号,sum(本批定额资金)as a
FROM 资金明细表
group by 工作令号,订单编号
) m
full join
(
SELECT 工作令号,订单编号,sum(订单材料总价)as b
FROM 订单总价
group by 工作令号,订单编号
) n
on m.工作令号 = n.工作令号 and m.订单编号 = n.订单编号
peanut2008 2010-11-10
  • 打赏
  • 举报
回复
并且只显示一次工作令号和合同编号
peanut2008 2010-11-10
  • 打赏
  • 举报
回复
工作令号+订单编号是主键,但是(工作令号+订单编号)可能重复,可能在订单总价中有的资金明细中没有,或者在订单总价中没有在资金明细中有,还要汇出a-b
--小F-- 2010-11-10
  • 打赏
  • 举报
回复
select
*
from
(
SELECT 工作令号,订单编号,sum(本批定额资金)as a
FROM 资金明细表
group by 工作令号,订单编号)a,

(SELECT 工作令号,订单编号,sum(订单材料总价)as b
FROM 订单总价
group by 工作令号,订单编号)b
where
a.订单编号=b.订单编号
WesLon 2010-11-10
  • 打赏
  • 举报
回复
create table #temp
(
....
)
insert into #temp(工作令号,订单编号,a)
SELECT 工作令号,订单编号,sum(本批定额资金)as a
FROM 资金明细表
group by 工作令号,订单编号

insert into #temp(工作令号,订单编号,b)
SELECT 工作令号,订单编号,sum(订单材料总价)as b
FROM 订单总价
group by 工作令号,订单编号

select 工作令号,订单编号,a,b,a-b from #temp
WesLon 2010-11-10
  • 打赏
  • 举报
回复
可以实现了,你建一个临时表了,包含两个表的字段.把资金明细表和订单总价查询出来的结果,插入临时表.然后在临时表中进行汇总了.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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