查询问题,急,求教高手,请高手速进!!!

cyzqd 2010-09-10 04:06:56
数据库
code digest qty fund date time
000002 220000.0 3600.0 -24412.580000000002 20100701.0 10021171.0
000024 220000.0 300.0 -4467.8400000000001 20100701.0 10021173.0
000027 220000.0 300.0 -2865.54 20100701.0 10021175.0
000039 220000.0 400.0 -4708.8800000000001 20100701.0 10021176.0
159903 220038.0 300000.0 0.0 20100701.0 10021672.0

这些数据按code为一个组合,组合在于code种类固定,qty数量固定,且在数据中连续出现,在表中还有其它相同的代码code和数量qty的记录。有
000002 220000.0 3600.0 -24412.580000000002 20100701.0 09021278.0
000002 220000.0 7300.0 -24412.580000000002 20100701.0 11021171.0
000039 220000.0 800.0 -4708.8800000000001 20100701.0 10101176.0
等等,要求是把这些组合都查出来,然后对每个组合的fund字段求和!请指教!!!谢谢!
...全文
135 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyzqd 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 shbz1986 的回复:]
不明白楼主的目的。。。照这样说,code000002 qty7300也是个组合,怎么结果中没有?
[/Quote]
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
000024 220000.0 300.0 -4467.84 20100701.0 10021173.0
000027 220000.0 300.0 -2865.54 20100701.0 10021175.0
000039 220000.0 400.0 -4708.88 20100701.0 10021176.0
159903 220038.0 300000.0 0.0 20100701.0 10021672.0

这几条记录构成了一个组合。 这个组合中必需包含这几个代码,还有他们相对应的数量才是我要数据。而且这几条记录在数据库中是连续排练的,就是上一条下一条紧挨着!
shbz1986 2010-09-13
  • 打赏
  • 举报
回复
不明白楼主的目的。。。照这样说,code000002 qty7300也是个组合,怎么结果中没有?
cyzqd 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wxf163 的回复:]
select a.*
from [TB] a where [time] = (select top 1 [time] from [TB] where code = a.code) order by a.code
这条语句就是利用了一个时间条件,时间也不相等!能出结果吗!?请教!?
abuying 2010-09-13
  • 打赏
  • 举报
回复
是不是找到code159903 qty300000就行了?
哥子谭 2010-09-10
  • 打赏
  • 举报
回复
数据看起来太复杂了,帮顶
王向飞 2010-09-10
  • 打赏
  • 举报
回复

--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:[TB]
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]')
AND type in (N'U'))
DROP TABLE [TB]
GO

---->建表
create table [TB]([code] varchar(6),[digest] numeric(7,1),[qty] numeric(7,1),[fund] numeric(7,2),[date] numeric(9,1),[time] numeric(9,1))
insert [TB]
select '000039',220000.0,800.0,-4708.88,20100701.0,10101176.0 union all
select '000002',220000.0,3600.0,-24412.58,20100701.0,10021171.0 union all
select '000024',220000.0,300.0,-4467.84,20100701.0,10021173.0 union all
select '000027',220000.0,300.0,-2865.54,20100701.0,10021175.0 union all
select '000039',220000.0,400.0,-4708.88,20100701.0,10021176.0 union all
select '159903',220038.0,300000.0,0.0,20100701.0,10021672.0 union all
select '000002',220000.0,3600.0,-24412.58,20100701.0,09021278.0 union all
select '000002',220000.0,7300.0,-24412.58,20100701.0,11021171.0
GO


select a.*
from [TB] a where [time] = (select top 1 [time] from [TB] where code = a.code) order by a.code
--> 查询结果
SELECT *
FROM [TB]
--> 删除表格
--DROP TABLE [TB]

暗夜之王 2010-09-10
  • 打赏
  • 举报
回复
看不出取數據的規則
cyzqd 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wxf163 的回复:]
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
结果中的这条数据
是根据什么取出来的?为什么其他两条000002 的去掉了?
[/Quote]
在组合中
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
000024 220000.0 300.0 -4467.84 20100701.0 10021173.0
000027 220000.0 300.0 -2865.54 20100701.0 10021175.0
000039 220000.0 400.0 -4708.88 20100701.0 10021176.0
159903 220038.0 300000.0 0.0 20100701.0 10021672.0
是code000002 qty3600
code000024 qty300
code000027 qty300
code000039 qty400
导致产生了
code159903 qty300000
这是一个连续的组合完成了。
下面的数据就和这个组合无关了。除非再出现一个这样的组合!
hao1hao2hao3 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cyzqd 的回复:]
这些组合特点是code固定,qty固定,而且在数据A中是连续出现。只要得出结果就行,对性能没啥要求!谢谢
[/Quote]

这特点我还是没看出来,是不是给的原始数据少了?
cyzqd 2010-09-10
  • 打赏
  • 举报
回复
这些组合特点是code固定,qty固定,而且在数据A中是连续出现。只要得出结果就行,对性能没啥要求!谢谢
王向飞 2010-09-10
  • 打赏
  • 举报
回复
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
结果中的这条数据
是根据什么取出来的?为什么其他两条000002 的去掉了?
cyzqd 2010-09-10
  • 打赏
  • 举报
回复
我再整理一下!数据A
code digest qty fund date time
000039 220000.0 800.0 -4708.88 20100701.0 10101176.0
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
000024 220000.0 300.0 -4467.84 20100701.0 10021173.0
000027 220000.0 300.0 -2865.54 20100701.0 10021175.0
000039 220000.0 400.0 -4708.88 20100701.0 10021176.0
159903 220038.0 300000.0 0.0 20100701.0 10021672.0
000002 220000.0 3600.0 -24412.58 20100701.0 09021278.0
000002 220000.0 7300.0 -24412.58 20100701.0 11021171.0
我要从中挑出
000002 220000.0 3600.0 -24412.58 20100701.0 10021171.0
000024 220000.0 300.0 -4467.84 20100701.0 10021173.0
000027 220000.0 300.0 -2865.54 20100701.0 10021175.0
000039 220000.0 400.0 -4708.88 20100701.0 10021176.0
159903 220038.0 300000.0 0.0 20100701.0 10021672.0
这些数据,而且象这样的组合在数据A中有很多,分别对每次的fund字段,求和!
fa_ge 2010-09-10
  • 打赏
  • 举报
回复
没怎么看明白,随手写的

SELECT code, digest, qty,SUM(Fund)fund
FROM t
GROUP BY code, digest, qty
ws_hgo 2010-09-10
  • 打赏
  • 举报
回复
感觉你描述不清楚

直接说结果
fa_ge 2010-09-10
  • 打赏
  • 举报
回复
这么多分,都没有人顶下.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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