使用SQL创建一个查询,查询哪个网格位置在商店中产生的收入最多
我不熟悉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
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名称我已更改了主答案中的代码,请立即检查。