我对遇到的问题感到非常困惑,无法找到答案。
我有两个表,一个名为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;