选择语句

时间:2011-06-15 16:21:39

标签: oracle

我的表看起来像这样:

enter image description here

如果字段名称包含相同lineItemIds的成本或数量,我必须将结果显示为:

  

成本从8 * 1 = 8变化   (fromVal * fromVal)至9 * 6 = 54   (toVal * toVal)为itemID 123。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

SELECT tc.LINE_ITEM_ID              ITEM_ID,
       tc.FROMVAL              COST_FROMVAL,
       tq.FROMVAL               QTY_FROMVAL,
       (tc.FROMVAL*tq.FROMVAL) PROD_FROMVAL,
       tc.TOVAL                  COST_TOVAL,
       tq.TOVAL                   QTY_TOVAL,
       (tc.TOVAL*tq.TOVAL)       PROD_TOVAL,
  FROM
(SELECT LINE_ITEM_ID,
        FROMVAL,
        TOVAL,
   FROM table
  WHERE FIELDNAME = 'cost') tc
JOIN (SELECT LINE_ITEM_ID,
             FROMVAL,
             TOVAL,
        FROM table
       WHERE FIELDNAME = 'quantity') tq
  ON tc.LINE_ITEM_ID = tq.LINE_ITEM_ID

答案 1 :(得分:0)

我会研究使用产品聚合函数。您必须自己编译它们,Oracle不会将它们作为系统函数包含在内。 http://radino.eu/2010/11/17/product-aggregate-function/

如果只是针对这种使用成本或数量的情况,那么您也可以使用子查询或基于临时事务的表。

我将为您提供一个查询示例,但遗憾的是目前没有可访问的Oracle实例。