2014-12-02 65 views
0

我有3張桌子。如何在select語句中獲得計算列?

一個是PRODUCT表,它具有unitSalePrice和其他表是ORDERPRODUCT,它有一個列productQuantity(從特定的產品太多秩序如何),也ORDERS增加的客戶的訂單細節。

我寫了一個SELECT聲明是這樣的:

SELECT 
    ORDERPRICE 
FROM 
    PRODUCT, ORDERPRODUCT, ORDERS 
WHERE 
    ORDERPRODUCT.PRODUCT_ID = PRODUCT.PRODUCT_ID 
    AND ORDERS.ORDER_ID = ORDERPRODUCT.ORDER_ID 
    AND ORDERPRICE AS (ORDERPRODUCT.PRODUCTQTY * PRODUCT.UNITSALEPRICE) ; 

但這ORDERPRICE列不在這3個表,它是虛擬列。

當我運行這個查詢時,它給出錯誤列不存在。

我該怎麼做?

+0

[不良習慣踢:使用舊式聯接(http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/ 08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的表*樣式列表被替換爲ANSI中的適當* ANSI'JOIN'語法 - ** 92 ** SQL標準(**超過20年**前),其使用不鼓勵 – 2014-12-02 05:54:23

回答

1

你應該學會使用明確join語法:

SELECT (op.PRODUCTQTY * p.UNITSALEPRICE) AS ORDERPRICE 
FROM PRODUCT p JOIN 
    ORDERPRODUCT op 
    ON op.PRODUCT_ID = p.PRODUCT_ID JOIN 
    ORDERS o 
    ON o.ORDER_ID = op.ORDER_ID; 
+0

謝謝。它對我有用。 – NoughT 2014-12-02 05:09:06