【发布时间】:2012-06-10 18:11:47
【问题描述】:
在 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 方法来解决这个问题?
【问题讨论】:
标签: sql oracle join group-by oracle11g