2016-10-04 95 views
0

我試圖執行以下語句的MySql在哪裏,並且聲明拋出錯誤在加入

SELECT ORDER_MONTH, 
SUM(PRICE) as Price  
FROM (SELECT EXTRACT(YEAR FROM ORDERDATE) AS ORDER_YEAR,  
MONTHNAME(ORDERDATE) AS ORDER_MONTH,   
ORDERDATE, PRICE FROM ORDER_ABSTRACT)A 
WHERE ORDER_YEAR=2016 AND SKU=4567 
GROUP BY MONTH(ORDERDATE) 

它投擲的錯誤未知欄「SKU」

表說明

Name Type Collation Attributes Null Default Extra 
1 ID varchar(36) utf8_general_ci No None 
2 InvoiceNo varchar(20) utf8_general_ci No None 
3 RefRetailer varchar(36) utf8_general_ci No None 
4 SKU varchar(20) utf8_general_ci No None 
5 OrderDate date No None 
6 CurrentStatus varchar(10) utf8_general_ci No None 
7 Price double No None 
8 PaymentType varchar(10) latin1_swedish_ci No None 
+1

請出示您的數據庫表結構 – Aswathy

+1

我認爲SKU應與單引號,如: SKU =「4567」 –

回答

2

我沒有看到一個內部連接,而是一個dinamically創建臨時表,並在此 您沒有一個列sku

可能是你還需要在SKU子選擇

SELECT ORDER_MONTH, 
SUM(PRICE) as Price  
FROM (SELECT SKU, 
       EXTRACT(YEAR FROM ORDERDATE) AS ORDER_YEAR,  
       MONTHNAME(ORDERDATE) AS ORDER_MONTH,   
       ORDERDATE, 
       PRICE 
     FROM ORDER_ABSTRACT) A 
WHERE ORDER_YEAR=2016 
AND SKU='4567' 
GROUP BY MONTH(ORDERDATE) 
+0

nope.didn't工作 –

+0

不知道你的沒有工作的意思。 SKU顯然應該在它後面有一個逗號,我的個人偏好是用子查詢別名限定子查詢返回的項目。 –

+0

@JijoNair我已更新缺少逗號並引用sku值。看看你的表模式..你在這個子查詢中使用子查詢的事實,你也必須選擇SKU .. – scaisEdge

1

我不知道,一個子查詢的需要 - 你可以重寫下面

SELECT case 
       when month(orderdate) = 1 then 'Jan' 
       when month(orderdate) = 2 then 'Feb' 
       when month(orderdate) = 3 then 'Mar' 
       when month(orderdate) = 4 then 'Apr' 
       when month(orderdate) = 5 then 'May' 
       when month(orderdate) = 6 then 'Jun' 
       when month(orderdate) = 7 then 'Jul' 
       when month(orderdate) = 8 then 'Aug' 
       when month(orderdate) = 9 then 'Sep' 
       when month(orderdate) = 10 then 'Oct' 
       when month(orderdate) = 11 then 'Nov' 
       when month(orderdate) = 12 then 'Dec' 
      end ordermonth 
       ,SUM(PRICE) as Price  
FROM order_abstract 
WHERE year(ORDERdate) = 2016 AND SKU=4567 
GROUP BY MONTH(ORDERDATE); 
0
SELECT SKU, ORDER_MONTH, 
    SUM(PRICE) as Price 
    FROM (SELECT EXTRACT(YEAR FROM ORDERDATE) AS ORDER_YEAR, 
       SKU, 
       MONTHNAME(ORDERDATE) AS ORDER_MONTH, 
       ORDERDATE, 
       PRICE FROM ORDER_ABSTRACT)A 
    WHERE ORDER_YEAR=2016 AND SKU = 'AHMD1234' 
    GROUP BY SKU,MONTH(ORDERDATE) 

這解決了我的問題,東西線。