2011-06-15 82 views
0

我的表看起来像这样:select语句

enter image description here

如果字段名称包含同一lineItemIds成本或数量,我得结果显示为:

成本变化从8 * 1 = 8 (fromVal * fromVal)至9 * 6 = 54 (toVal * toVal),用于ITEMID 123.

任何帮助将不胜感激。

回答

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 
+0

不错的manji。非常感谢! – CFNinja 2011-06-15 20:28:11

0

我会考虑使用产品集合函数。但是,您必须自己编译它们,Oracle不会将它们包括在系统功能中。 http://radino.eu/2010/11/17/product-aggregate-function/

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

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

+0

哇,非常可观!如果只有我可以将它应用于我的案例。 – CFNinja 2011-06-15 16:44:20