一个表结构:profit(float类型) time(datetime类型)
比如下列数据:2000 2002-1-5
2600 2002-8-8
3000 2002-10-9
2600 2003-2-7
2600 2003-4-18
2600 2003-5-1
2600 2003-11-23
我想在报表里实现的功能是:将属于2003年的所有利润和减掉2002年所有的利润的差值,然后把差值填入一个字段内(当然,我这里为了简化问题,没有用另一个字段type,实际中,每个type都有这么一个差值,现在只是想算这个差值,所以先可以不考虑type)。
在做表的自身连接时会算出一个数值,但是实际差值的n倍
我的sql语句:
SELECT SUM(first.pro_year) - SUM(second.pro_year) AS gap
FROM test first, test second
WHERE (first.datee BETWEEN '2003-1-1' AND '2003-12-31') AND (second.datee BETWEEN
'2002-1-1' AND '2002-12-31')
我想,delphi的报表功能应该很强大啊,不至于连这点功能都实现不了吧,一定可以实现在同一个表里,根据不同年份算出利润并比较差值,打印在报表里的。我刚解除delphi,所以,我想请教一下各位这个报表的实现,不胜感激!
比如下列数据:2000 2002-1-5
2600 2002-8-8
3000 2002-10-9
2600 2003-2-7
2600 2003-4-18
2600 2003-5-1
2600 2003-11-23
我想在报表里实现的功能是:将属于2003年的所有利润和减掉2002年所有的利润的差值,然后把差值填入一个字段内(当然,我这里为了简化问题,没有用另一个字段type,实际中,每个type都有这么一个差值,现在只是想算这个差值,所以先可以不考虑type)。
在做表的自身连接时会算出一个数值,但是实际差值的n倍
我的sql语句:
SELECT SUM(first.pro_year) - SUM(second.pro_year) AS gap
FROM test first, test second
WHERE (first.datee BETWEEN '2003-1-1' AND '2003-12-31') AND (second.datee BETWEEN
'2002-1-1' AND '2002-12-31')
我想,delphi的报表功能应该很强大啊,不至于连这点功能都实现不了吧,一定可以实现在同一个表里,根据不同年份算出利润并比较差值,打印在报表里的。我刚解除delphi,所以,我想请教一下各位这个报表的实现,不胜感激!
select year(a.time) as 年份 ,((select sum(profit) from table where year(time)=year(a.time)+1 group by year(time))-sum(a.profit)) as 差价 from table as a group by year(a.time)