在 Oracle 11g Express 中,我有以下查询:
select t1.product_name, SUM(t1.product_cost_per_month)
FROM table1 t1 INNER JOIN table2 t2 on (t1.product_name = t2.product_name)
WHERE t2.date > sysdate
GROUP BY t1.product_name
这有效,它返回每月产品成本的总和,在某个日期之后按产品分组(我在这里仅使用 sysdate 作为示例)。
但是,我想显示一些关于每个产品的附加描述,即供应商。所以我使用这段代码:
select t1.product_name, SUM(t1.product_cost_per_month), t2.vendor
FROM table1 t1 INNER JOIN table2 t2 ON (t1.product_name = t2.product_name)
WHERE t2.date > sysdate
GROUP BY t1.product_name
这不起作用,因为所有变量都需要对它们应用聚合函数才能使用“分组依据”,但是对于“供应商”之类的聚合函数似乎毫无意义......那么有没有办法做到这一点?
我可能会写一个简短的 pl/sql 例程来解决,但我想知道是否有一种纯粹的 SQL 方法可以做到这一点?