使用SQL创建一个查询,查询哪个网格位置在商店中产生的收入最多

使用SQL创建一个查询,查询哪个网格位置在商店中产生的收入最多,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,我不熟悉SQL和数据库,我已经为一家商店创建了一个基本的数据库。表格包括:采购、项目、产品。我正在尝试创建一个查询,以提取哪个网格的收入最多。我尝试了以下代码: SELECT PRODUCT.LATITUDE , PRODUCT.LONGITUDE , SUM(PRICE)"TOTAL" , PRODUCT.PRODUCT_ID , PURCHASE.PURCHASE_ID , ITEM.PURCHASE_ID, FROM P

我不熟悉SQL和数据库,我已经为一家商店创建了一个基本的数据库。表格包括:采购、项目、产品。我正在尝试创建一个查询,以提取哪个网格的收入最多。我尝试了以下代码:

SELECT PRODUCT.LATITUDE
       , PRODUCT.LONGITUDE
       , SUM(PRICE)"TOTAL"
       , PRODUCT.PRODUCT_ID
       , PURCHASE.PURCHASE_ID
       , ITEM.PURCHASE_ID,
FROM PRODUCT
     , PURCHASE
     , ITEM, 
WHERE PURCHASE.PURCHASE_ID = ITEM.PURCHASE_ID 
AND ITEM.PRODUCT_ID = PRODUCT.PRODUCT_ID;
关于如何最好地带回这些细节,有什么建议吗

谢谢

给你:

SELECT  PRODUCT.LATITUDE
   , PRODUCT.LONGITUDE
   , SUM(PRODUCT.PRICE)  "TOTAL"
FROM PUCHARSE JOIN ITEM ON PUCHARSE.ID = ITEM.PUCHARSE_ID JOIN PRODUCT ON PRODUCT.ID = ITEM.PRODUCT_ID   
GROUP BY 
PRODUCT.LATITUDE,
PRODUCT.LONGITUDE
ORDER BY SUM(PRODUCT.PRICE) DESC
NULLS LAST;

假设产品表包含有关商店地理位置、价格和表购买的信息,您只需要产品ID(此表中的每一个已售完产品都是单行,这样您就有了历史上已售完的产品数量)。

今天的提示:始终使用现代、明确的
连接
语法。更易于编写(无错误),更易于阅读(和维护),并且在需要时更易于转换为外部联接。您还需要在此处使用
groupby
。另一个提示:正确的布局可防止混淆。此处发布的代码后面有逗号。我不知道这是否只是你问题的产物,但如果它们在你的实际代码中,查询将不会运行。好的,谢谢,但是我没有在购买表中存储产品ID,因为购买可能有多个产品。连接3列的语法是什么?即采购>项目>产品采购采购\u ID采购\u时间采购\u日期项目项目\u ID采购\u ID产品\u ID产品\u ID经纬度价格\u范围产品\u名称我已更改了主答案中的代码,请立即检查。