2011-06-15 160 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