我对遇到的问题感到非常困惑,无法找到答案。

我有两个表,一个名为LEDGER,一个名为WORKER。 LEDGER包含提供人员姓名,项目,日期和总额的交易。工作者仅包含人名。

我正在尝试编写一个查询,该查询将同时通过LEDGER和WORKER使用WHERKER,并查找WORKER在LEDGER中进行购买的实例,并输出结果。这个基本部分很简单,我已经为其编写了查询:

SELECT WORKER.NAME,
LEDGER.ITEM,
LEDGER.AMOUNT
FROM LEDGER, WORKER
WHERE WORKER.NAME = LEDGER.PERSON
  AND LEDGER.ACTION = 'BOUGHT'
GROUP BY WORKER.NAME, LEDGER.ITEM, LEDGER.AMOUNT
ORDER BY WORKER.NAME ASC;


我正在努力的部分是显示所有项目的总和,而不是满足这些条件的清单交易。例如,我的输出是:

NAME               ITEM      AMOUNT
ANDREW DYE         COLT      9
ANDREW DYE         COLT      10
ANDREW DYE         HAY       5
ANDREW DYE         HAY       20
ANDREW DYE         LINE      0.75
ANDREW DYE         PIG       2
HELEN BRANDT       BEEF      7.5
PETER LAWSON       BEEF      6.5
VICTORIA LYNN      BEEF      6.9


取而代之的是,我只希望将总计所有项目金额的总金额合并为一行,如下所示:

NAME               TOTAL_AMOUNT
ANDREW DYE         46.75
HELEN BRANDT       7.5
PETER LAWSON       6.5
VICTORIA LYNN      6.9


我希望这个问题有道理,非常感谢您的回答。

最佳答案

SELECT WORKER.NAME,
MAX(LEDGER.ITEM),
SUM(LEDGER.AMOUNT)
FROM LEDGER, WORKER
WHERE WORKER.NAME = LEDGER.PERSON
  AND LEDGER.ACTION = 'BOUGHT'
GROUP BY WORKER.NAME
ORDER BY WORKER.NAME ASC;

10-08 18:58