我对遇到的问题感到非常难过,但我很难找到答案。
我有两个表,一个名为LEDGER,另一个名为WORKER。 LEDGER包含提供人员姓名,项目,日期和总金额的交易。 WORKER仅包含人名。
我正在尝试通过LEDGER和WORKER编写一个查询(使用equi-join),并查找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;
我正在努力的部分是出现所有项目的SUM而不是符合这些条件的列表事务。例如,我的输出是:
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
我希望这个问题有道理,非常感谢任何答案。
答案 0 :(得分:0)
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;