我想要基于ProductId
和Date
的sum
成本。
我的日期格式是:YY/MM/DD
,它是date
。数据看起来像这样:
DateFrom DateTo Cost ProductId
07/12/12 | 07/12/31 | 120,5 | 1
01/12/12 | 11/12/31 | 220 5 | 1
01/12/12 | 11/12/31 | 120,5 | 1
08/12/12 | 08/12/31 | 140,5 | 2
11/12/12 | 11/12/31 | 140,5 | 2
11/12/12 | 11/12/31 | 140,5 | 2
我想要得到的输出应该是这样的:
FirstDateFrom LastDateTo SumOfCostFromSameYear ProductId
07/12/12 | 07/12/31 | 120,5 | 1
01/12/12 | 11/12/31 | 341 | 1
08/12/12 | 08/12/31 | 140,5 | 2
11/12/12 | 11/12/31 | 281 | 2
正如你所看到的,我希望在我的输出中有来自每个year
的cots的总和。
我开始写一些sql
:
SELECT DateFrom, DateTo, ProductId, SUM(cost) FROM CostOfSomething WHERE ...
但我不知道WHERE
语句对于我的场景应该是什么样子
编辑:创建此表的脚本:
create table CostOfSomething(
Id NUMBER PRIMARY KEY,
DateTo DATE,
DateFrom DATE,
Cost NUMBER(6,2),
ProductId NUMBER REFERENCES product(ProductId)
);
select min(DateFrom) "FirstDateFrom"
, max(DateTo) "LastDateTo"
, sum(Cost) "SumOfCostFromSameYear"
, min(ProductId) "ProductId"
from CostOfSomething
group by to_char(DateFrom, 'yy')
order by to_char(DateFrom, 'yy') -- you do not need to have order by
这是一个演示