有一个表定义如下
year,month,sumrk(数值型),sumck(数值型)四个字段现要实现如下查询:
要查询2003年的年报数据时
返回的结果集为
year,sumrk,sumck三个字段组成的query
要求sumrk的数值为2002年12月的统计数据,而sumck的数值为2003年整年的统计数据
应该怎么写SQL语句?
year,month,sumrk(数值型),sumck(数值型)四个字段现要实现如下查询:
要查询2003年的年报数据时
返回的结果集为
year,sumrk,sumck三个字段组成的query
要求sumrk的数值为2002年12月的统计数据,而sumck的数值为2003年整年的统计数据
应该怎么写SQL语句?
解决方案 »
- 运行时图像处理
- 如何Hook程序中代码的某段,并跳转取值后再跳回去
- procedure TstuWHForm.LoadEndEvent(Sender: TObject);这是为打印RBuilder报表出现的问题
- 有谁做过数据导入,把EXCEL,TXT等导入数据表?
- 求一个API函数:在Windows文件夹里,当我们点一个文件或连续选中几个文件的时候,我如何用API获得刚才选中的文件名
- 请问谁知道TMS组件哪里有下载,要包括TMSGRID最新版本,谢谢!急!!!!!!
- 关于数据库的内容
- 用DELPHI开发ActiveXForm,一切正常,在IE中也可用,但是一移动滚动条,ActiveXForm就花屏,重新刷新后又正常,请问这个问题如何解决.-----是高手的就进来解决一下吧.
- *****23****分,垂手可得
- 如何在别人回答我的帖子下跟贴?
- 请问直接给DATE类型的数据怎么符值呢?
- 在Delphi 中如何远程启动‘sql server'的'服务管理器'
(select sum(sumck) from yourtable where year = 2002 and month = 12)
(select sum(sumrk) from yourtable where year = 2003)
from yourtable where year = .. and month = ..
(select sumrk from yourtable where year = '2002' and month = '12'),
(select sum(sumck) from yourtable where year = '2003')
from yourtable
select C.year,C.sumck,D.sumrk from
(select A.year,B.sumck from table1 A
INNER join
(select sum(sumck) as sumck from table1 where year=2003) B on a.year=b.year) C
INNER JOIN
(select sum(sumrk) as sumrk from table1 where year=2002 and month=12) D
ON C.YEAR=(D.YEAR-1) where c.year=2003
(select sum(sumrk) from table where year='2002' and month='12')as sumrk ,
sum(sumck) as sumck
from table
where year='2003'
group by year
left join
(select sum(sumck) as sumck from table1 where year=2003)) B on a.year=b.year
where month=12
select
year,
(select sum(sumrk) from yourtable where year='2002' and month='12')as sumrk ,
sum(sumck) as sumck
from yourtable
where year='2003'
group by year
但是不知道你要这样表示怎么用途,因为像这样结果显示 有点怪,比如
year 年为2003, 那么sumrk为 2002年12和为 1000 , sumck为 2003年和为 1000000
作为一条记录看起来让人糊涂。
FROM (SELECT year,sumrk FROM table WHERE (year=2003) and (month=12)) table_a LEFT OUTER JOIN
(SELECT year,SUM(sumck)AS sumck FROM table WHERE (year=2003) GROUP BY year) table_b ON table_a.year=table_b.year
(select sum(sumck) from yourtable where year = 2002 and month = 12),
(select sum(sumrk) from yourtable where year = 2003)
from yourtable
from your table where year=... and month=...
(select sum(sumck) from yourtable where year = 2002 and month = 12),
(select sum(sumrk) from yourtable where year = 2003)
select 2003,
(select sum(sumrk) from yourtable where year = 2002 and month = 12),
(select sum(sumck) from yourtable where year = 2003)
前题说明:
zwfckbb 出入库详细数据表
product 产品表,里面包含产品的大类名称
cpdl 产品大类分类表,包含大类序号和名称,
本来写了以下查询
select bb.ckbh,bb.year,tc.xh,p.dl,sum(bb.lastnum) as lastnum,sum(bb.rk) as rk,
sum(bb.chk) as chk
from zwfckbb bb,product p,cpdl tc where bb.year='2000' and (bb.cpbh=p.cpbh) and (p.dl=tc.dl)
group by bb.ckbh,bb.year,tc.xh,p.dl
查出来对就的结果是:
出库编号 统计年份 序号 大类名称 年初结存 本年入库 本年出库但是如果这样查询 统计数据都是一年的,如2000年的
但是问题在:年初结存指的是上年12月份的lastnum数目,并不是本年lastnum的合计
请问本问题如何解决!
我另开帖子,请朋友们看看!