bid name realprice buyidentity buytime
123 张三 2000 123456789 2000-01-02
113 张三 3500 123456789 1999-01-02
222 李四 4000 987654321 2002-08-02
333 王五 2000 555552222 1997-02-29注:bid唯一的ID号,name购买人姓名,realprice实际购买价格,buyidentity购买时身份证,buytiem购买时间.问题:
查询sum(realprice)在哪个时间达到(小于或等于)6000,并列出所有内容
如:达到6000
113 张三 3500 123456789 1999-01-02
333 王五 2000 555552222 1997-02-29 SQL怎么写....
123 张三 2000 123456789 2000-01-02
113 张三 3500 123456789 1999-01-02
222 李四 4000 987654321 2002-08-02
333 王五 2000 555552222 1997-02-29注:bid唯一的ID号,name购买人姓名,realprice实际购买价格,buyidentity购买时身份证,buytiem购买时间.问题:
查询sum(realprice)在哪个时间达到(小于或等于)6000,并列出所有内容
如:达到6000
113 张三 3500 123456789 1999-01-02
333 王五 2000 555552222 1997-02-29 SQL怎么写....
解决方案 »
- Imagelist stretch
- 在delphi中如何实现ps中那种渐变画笔的效果
- 如何在delphi中datasource赋值为空
- 求购:fastreport3中文帮助
- 高手进来讨论个D5文件操作的问题,关于Reset....
- 如何得到Treeview中结点的关键字值,不是文本text的值,如同VB中的node.key的值
- 函数声明出错????
- 关于动态二维数组的问题
- Delphi + Win7 + TService 调用 CreateOleObject
- 有关Oracle数据库问题请教高手
- 另存Excel时,为什么却只存了快捷方式?
- 关于把excel的数据导入到sqlserver2000的问题?
---构建环境
drop table testcreate table Test
(bid char(3),
name char(10),
Realprice float(8),
buyidentity char(10),
buytime datetime)insert test
values('123','张三',2000,'123456789','2000-01-02')insert test
values('113','张三',3500,'123456789','1999-01-02')insert test
values('222','李四',4000,'987654321','2002-08-02')insert test
values('333','王五',2000,'555552222','1997-02-28')
---最终SQL语句
select A.* from test A
where (Select sum(Realprice) from Test as B where B.buytime<=A.buytime)<=6000
where B.buytime<=A.buytime得出来的结果一定是BUYTIME的递增吗?我这里的递增的意思是:从早到最近
SQL应该怎么写了....在线等啊...谢谢各位高手些了
from test A
where (Select sum(Realprice) from Test as B where B.buytime<=A.buytime)<=6000
order by A.buytime
加order by A.buytime就可以保证早到最近的
有问题吧? 应该是大于等于吧?
先 select 姓名 from table group by 姓名 得到所有人姓名
然后用游标对姓名循环
Select sum(money) from table where 姓名 = 游标姓名
if sum(money) >= 6000 then // 如果是小于的话就是 <=
Select * into #tables From table where 姓名 = 游标姓名
这样就把所有的符合条件的数据都放到了临时表 #tables 里面 ,最后来
Select * From #tables就是全部符合条件的数据