有一张订单,订单号为1,生产进度如下 ,总数量是370,单位有百米或米
名称 单位   需求数量 排产  交库
A    百米    100      0
B    米      70       0
C    百米    100     100   100
D    米      100     100    75注:排产0表示在库存取数,视同完成,完成率(100+70+100+75)/370= 87.83%
希望得到的结果是
订单号  订单总数  完成率     完成情况
1         370     87.83%     A100百米、B70米库存取,C交库100百米,D交库75米,还有25米未完成,

解决方案 »

  1.   

    订单号X和名称Y有什么关系,LZ没说清晰
      

  2.   

    假设订单明细表为SOMX
    select 订单号,sum(需求数量),sum(交库数量)/sum(需求数量),A.b
    from 
    (
    select case '排产' when '排产'=0 then 名称+需求数量+单位+库存取 else 名称+需求数量+单位+交库+(需求-交库) AS b
    from somx) A
    group by 订单号
    我要的结果大概就是这个意思了,不知楼上的看明白没有
      

  3.   

    假设订单明细表为SOMX 
    select 订单号,sum(需求数量),sum(交库数量)/sum(需求数量),A.b 
    from 

    select case  when 排产=0 then 名称+需求数量+单位+库存取 else 名称+需求数量+单位+交库+(需求-交库) END AS b 
    from somx) A 
    group by 订单号 
    我要的结果大概就是这个意思了,不知楼上的看明白没有 ,我希望是通过SELECT语句写出来的,不要用参数的,因为金思维软件太差了,报表编辑只支持SELECT语句,而且只支持SQL2000
      

  4.   

    其实我觉得SQL处理行集问题 其它的灵活性问题用程序来处理吧 
    如果一定要处理 用存储过程吧 前面那个汇总很好办 然后游标遍存一下取出后面的字符串