这种表SQL怎么查询,送分!(100分)

  • 主题发起人 主题发起人 繁星一号
  • 开始时间 开始时间

繁星一号

Unregistered / Unconfirmed
GUEST, unregistred user!
表A:
ID 售货品种 总售货量 售货时间
1 2 24 02/5/6 3:30
2 3 25 02/5/6 2:30
3 2 26 02/5/7 2:00
4 3 27 02/5/7 4:30
5 2 29 02/5/8 1:20
6 3 28 02/5/8 4:50
7 2 34 02/5/9 5:40
8 3 32 02/5/9 5:20
9 2 36 02/5/10 1:20
10 3 37 02/5/10 2:10
表B
ID 售货品种 起始售货量 截止售货量 截止时间 起始时间
1 2 24 29 02/5/8 1:20 02/5/6 3:30
2 3 25 28 02/5/8 4:50 02/5/6 2:30

我现在想把A表中的数据汇合到B表中,售货品种就2和3两种,各两天统计一次,把统计时
的总售货量作为截止售货量,B表中的截止售货量作为这次统计的起始售货量把统计的时
间作为截止时间,B中的上次截止时间对应本次的起始时间,各位高手谢了,请考虑,给分
 
先从table_b中把截止售货量各保存在变量A,B中
update table_b set (截止售货量)=
(select sum(总售货量)
from table_A
where 售货品种=2)
update table_B set(截止售货量)=
(select sum(总售货量)
from table_A
where 售货品种=3)
update table_B set 截止时间=当前时间
 
呵呵,忘了两个品种的时间是不一样的,那只能再写两条update了(而且每条语句都
要写在每条update截止售货量语句之前:
update table_b set (起始售货量,截止时间)=(qsl1,当前时间)
update table_b set (起始售货量,截止时间)=(qsl2,当前时间)
 
我这里使用的是SQL server,
1、我必须保留B中的以前的记录
2、我的A中的字段‘总售货量’本身就是一个总售货量,不必在求和,但是问题是怎么给它把
这个最后一条记录查出来的条件
 
不明白你的意思,既然不用求和,那a表中那么多条记录,在汇入b表时是怎么一个过程呢?
能不能用直观的方式显示一下汇总后的B表数据是怎样?
 
谢谢哥们的热心指教先,我的这个数据库你可以观察一下,A表中的总售货量就是对应的
每一个售货品种的到售货时间时的累计售货量,所以不用累加求和了,直接把他取出来放到
B中去就可以了,现在的问题是,我在每次统计的时候需要从表A中把最新的一组数据(包括品种
1,2的)查出,连上表B的上一次的记录组合成这次的记录,加入到表B 中去!
 
insert table2 (ID ,售货品种,起始售货量 ,截止售货量 ,截止时间, 起始时间 )
values ( select max(id) from table1 ,
2,
select 截止售货量 from table1
where 截止时间 = (selecct max(截止时间)
from table1 where 售货品种 = 2 ),
select 总售货量 from table1
where 售货时间 = select max(售货时间) from table1,
select max(售货时间) from table1,
selecct max(截止时间)
from table1 where 售货品种 = 2 )





 
表A:
ID 售货品种 总售货量 售货时间
1 2 24 02/5/6 3:30
2 3 25 02/5/6 2:30
3 2 26 02/5/7 2:00
4 3 27 02/5/7 4:30
5 2 29 02/5/8 1:20
6 3 28 02/5/8 4:50
7 2 34 02/5/9 5:40
8 3 32 02/5/9 5:20
9 2 36 02/5/10 1:20
10 3 37 02/5/10 2:10
表B
ID 售货品种 起始售货量 截止售货量 截止时间 起始时间
1 2 24 29 02/5/8 1:20 02/5/6 3:30
2 3 25 28 02/5/8 4:50 02/5/6 2:30
如果我没猜错的话下面查询结果下面的记录应该是这样的
3 2 26 34 02/5/9 5:40 02/5/7 2:00
4 3 27 32 02/5/9 5:20 02/5/7 4:30
现在问题不明确!
是不是想要这样的结果呢?如果是请确认,好解定问题!
 
同意BlueAnt,但是没有检查他的语法,如果有不对的地方,你自己改改吧!
[:)][:D][8D]
 
谢谢各位兄弟的热情帮助,我现在在外,机器上没装SQL没发测试,晚上回去测试后一定送分
天崖无爱说的那后两个记录不是我想得到的,应该是
表A:
ID 售货品种 总售货量 售货时间
1 2 24 02/5/6 3:30
2 3 25 02/5/6 2:30
3 2 26 02/5/7 2:00
4 3 27 02/5/7 4:30
5 2 29 02/5/8 1:20
6 3 28 02/5/8 4:50
7 2 34 02/5/9 5:40
8 3 32 02/5/9 5:20
9 2 36 02/5/10 1:20
10 3 37 02/5/10 2:10
表B
ID 售货品种 起始售货量 截止售货量 截止时间 起始时间
1 2 24 29 02/5/8 1:20 02/5/6 3:30
2 3 25 28 02/5/8 4:50 02/5/6 2:30

3 2 29 36 02/5/10 1:20 02/5/8 1:20
4 3 27 37 02/5/10 2:10 02/5/8 4:50
 
上边最后4的起始售货量错了,应该是28,并且如果我的品种多了,也要这么一条条的按照
BlueAnt说的做吗?有什么好方法吗?本人对SQL浅知,请赐教!
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
834
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
776
DelphiTeacher的专栏
D
后退
顶部