2014-12-05 37 views
2

我需要执行下面的查询:SQL原料到MySQL查询

select Clients.Zip, AVG(SpentT) as Average_Spent_Per_Zipcode 
from 
    (select CLIENT.CLIENT_ID AS ClientID, Averages.Spent AS SpentT, CLIENT.ZIPCODE AS Zip 
    from CLIENT, 
     (select CLIENT_ID, AVG(MENU.PRICE) AS Spent 
     from ORDER_HISTORY, MENU 
     where (ORDER_HISTORY.FOOD = MENU.FOOD) 
     AND (ORDER_HISTORY.RESTAURANT_ID = MENU.RESTAURANT_ID) 
     group by ORDER_HISTORY.CLIENT_ID) 
     AS Averages 
    where CLIENT.CLIENT_ID = Averages.CLIENT_ID) AS Clients 
group by Clients.Zip 
order by Average_Spent_Per_Zipcode DESC 

我知道这可能不是最简单的查询,但这个想法是找到在餐厅上花费最多的邮编平均。

我已经试过

sqlP1=text('select Clients.Zip, AVG(SpentT) as Average_Spent_Per_Zipcode from (select CLIENT.CLIENT_ID AS ClientID, Averages.Spent AS SpentT, CLIENT.ZIPCODE AS Zip from CLIENT, (select CLIENT_ID, AVG(MENU.PRICE) AS Spent from ORDER_HISTORY, MENU where (ORDER_HISTORY.FOOD = MENU.FOOD) AND (ORDER_HISTORY.RESTAURANT_ID = MENU.RESTAURANT_ID) group by ORDER_HISTORY.CLIENT_ID) AS Averages where CLIENT.CLIENT_ID = Averages.CLIENT_ID) AS Clients group by Clients.Zip order by Average_Spent_Per_Zipcode DESC') 
result= db.engine.execute(sql) 

,但我不断收到任何错误,我是新来这个,所以我不知道如果日志将有助于/其中id找到他们。
如果有人知道如何执行这个查询,那就太棒了! 您的帮助非常感谢!

+0

你能后请 – Adrian 2014-12-05 02:27:19

+0

内部服务器错误 服务器遇到一个内部错误,无法完成您的请求的错误。服务器过载或应用程序出现错误。 @Adrian我不知道如何检查日志以获得更精确的错误。有可能是我缺少一些进口吗? – Brandon 2014-12-05 04:19:55

回答

2

试试这个:

SELECT C.ZIPCODE, AVG(M.PRICE) AS Average_Spent_Per_Zipcode 
FROM ORDER_HISTORY OH 
INNER JOIN MENU M ON OH.FOOD = M.FOOD AND OH.RESTAURANT_ID = M.RESTAURANT_ID 
INNER JOIN CLIENT C ON OH.CLIENT_ID = C.CLIENT_ID 
GROUP BY C.ZIPCODE 
ORDER BY AVG(M.PRICE) DESC; 
+0

你知道我是如何找到如果我错过了一个导入声明? @Saharsh Shah – Brandon 2014-12-05 23:48:19