日期:2014-05-17  浏览次数:20384 次

请教汇总数和明细同时列出的SQL语句
表t的字段主要有:
加工单号,生产计划号,物料编码,加工数
就是开加工单,记录加工某生产计划号的某物料的加工数。

现在要列出上列所有字段数据,并且每一条记录,都外加一个汇总计算列:已开加工单总数。

已开加工单总数,就是将生产计划号相同、物料编码相同的加工数,汇总起来。
结果类似于:
加工单号   生产计划号  物料编码  加工数  已开加工单总数
1001      P2012001  A0011     5        20
1002      P2012001  A0011     15       20


SQL语句应该如何写?

叩谢!
------解决方案--------------------

select
    加工单号,
    生产计划号,
    物料编码,
    加工数,
    已开加工单总数=(
                     select 
                         sum(加工数) 
                     from 
                         表t b 
                     where 
                         a.生产计划号相同=b.生产计划号相同 and a.物料编码=b.物料编码
                     )
from
    表t a

------解决方案--------------------
select A.*,B.num as 已开加工单总数
from TB A
inner join (select 生产计划号,物料编码,sum(加工数) as num from TB group by  生产计划号,物料编码) B
on A.生产计划号 = B.生产计划号 and A.物料编码=B.物料编码

------解决方案--------------------
select 加工单号,生产计划号,物料编码,加工数,(select SUM(加工数) from T where 生产计划号=a.生产计划号 and 物料编码=a.物料编码) as  已开加工单总数
from T as a