如何将同一表中某一年和某一月的数据统计到同一个QUERY中????

Spqk005 2003-10-15 03:39:02
关于本问题的求救:

前题说明:
zwfckbb 出入库详细数据表 主要字段
ckbh 出库编号
year varchar
month varchar
cpbh 产品编号

product 产品表,里面包含产品的大类名称
cpbh 产品编号
dl 大类名称
cpdl 产品大类分类表,包含大类序号和名称,
xh 大类序号
dl 大类名称

本来写了以下查询
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的合计
请问本问题如何解决!

主要回答人将同另一贴的80分得到140分值
...全文
45 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dickeybird888 2003-10-15
  • 打赏
  • 举报
回复
ha ha我来接分(·¥·)
2312 2003-10-15
  • 打赏
  • 举报
回复
一转眼,上面都写了这么多了!
你得意思明白了
那你就得在时间上控制了,还有,建议用存储过程!
lining_1977 2003-10-15
  • 打赏
  • 举报
回复
select table1.ckbh,table1.year,table1.xh,table1.dl,table2.lastnum from (select bb.ckbh,bb.year,tc.xh,p.dl,sum(bb.rk) as rk,
sum(bb.chk) as chk
from zwfckbb bb,product p,cpdl tc where (bb.cpbh=p.cpbh) and (p.dl=tc.dl)
group by bb.ckbh,bb.year,tc.xh,p.dl)as table1 join
(select bb.ckbh,bb.year,tc.xh,p.dl,sum(bb.lastnum) as lastnum,
from zwfckbb bb,product p,cpdl tc where bb.month='12' and (bb.cpbh=p.cpbh) and (p.dl=tc.dl)
group by bb.ckbh,bb.year,bb.Month,tc.xh,p.dl) as table2 on
table1.ckbh=table2.ckbh and convert(int,table1.year)=convert(int,table2.year+1) and table1.xh=table2.xh and table1.dl=table2.dl
佣工7001 2003-10-15
  • 打赏
  • 举报
回复
联合查询!
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
union all
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='1999' and (bb.cpbh=p.cpbh) and (p.dl=tc.dl)
group by bb.ckbh,bb.year,tc.xh,p.dl
tiexinliu 2003-10-15
  • 打赏
  • 举报
回复
那就先判断是不是12月份了,用存储过程吧
Spqk005 2003-10-15
  • 打赏
  • 举报
回复
我在原先的统计中,所有的列都用输入的年份按年度来进行合计
但是年初结存即lastnum并不是指输入年份如2003的合计,而是2002年12月的合计
即2002年12月的合计做为2003年的年初结存
所以在2003数据时,
年初结存是统计2002.12的数据,而其它为2003的合计

2312 2003-10-15
  • 打赏
  • 举报
回复
不知道是我理解的问题,还是你说的有问题
1.你要什么样的结果?
2.“但是问题在:年初结存指的是上年12月份的lastnum数目,并不是本年lastnum的合计”
这句特别不明白?

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧