编写选择查询?

时间:2013-12-19 21:00:29

标签: group-by oracle10g inner-join

我有两张桌子:

  table1 =tbl_main:

  item_id fastec_qty   sourse_qty
   001       102         100
   002       200         230
   003       300         280
   004       400         500

  table2= tbl_dOrder
    order_id    item_id     amount
     1001          001      30
     1001          002      40
     1002          001      50
     1002          003      70

如何编写查询以使表的结果如下:

  sum(fastec_qty)       sum(sourse_qty)   difference1  sum(amount)   difference2  
       1002                1110              -108         190           812

difference1 = sum(fastec_qty)-sum(sourse_qty);

difference2 = sum(fastec_qty)-sum(amount);

3 个答案:

答案 0 :(得分:1)

select sum(m.fastec_qty)
     , sum(m.sourse_qty)
     , sum(m.fastec_qty) - sum(m.sourse_qty)
     , sum(o.amount)
     , sum(m.fastec_qty) - sum(o.amount) 
  from tbl_main m
     , tbl_dOrder o 
 where m.item_id = o.item_id 
 group by 1, 2, 3, 4, 5

答案 1 :(得分:0)

我会给你一个提示,首先加入item_id上的表格。

select item_id.tbl_main fastec_qty.tbl_main 
     , source_qty.tbl_main
     , order_id.tbl_order
     , amount.tbl_order 
  from tbl_main
     , tbl_order 
 where item_id.tbl_main = item_id.tbl_order;

下一步是对三列求和,最后进行减法。

答案 2 :(得分:0)

 SELECT sum(a.sourse_qty) as samount,  sum(a.fastec_qty) AS amount,
        sum(a.sourse_qty- a.fastec_qty) as sfd,
        (select sum(ITEM_QTY) from TBL_DO )as  qty,
         sum(a.fastec_qty) - (select sum(ITEM_QTY) from TBL_DO ) AS difference
        FROM   tbl_main  a group by 1,2,3,4,5

  amount       samount    sfd          qty       difference

   1002         1110     -108          190           812

全部谢谢,

相关问题