| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1523 人关注过本帖
标题:急!SQL语句查询问题
只看楼主 加入收藏
hxaudit
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-11-15
收藏
 问题点数:0 回复次数:10 
急!SQL语句查询问题
" border="0" /> [bold][求助]SQL语句查询问题[/bold]
操作员   收费金额           收费日期
A123.322007-1-1
A112.342007-1-1
A101.362007-1-1
B90.382007-1-1
B79.42007-1-2
C68.422007-1-2
C234.562007-1-2
D400.72007-2-5
D566.842007-2-6
A34.562007-2-6
A356.772007-2-7
....................................
D            xxxx          2007-12-31
有以上数据表,如何用SQL语句查询实现下表

操作员月份收费合计
A1337.02
A2391.33
A3xxx
A………xxx
A12xxx
B1169.78
B2xxx
B3xxx
B………xxx
B12xxx
C1302.98
C2xxx
C3xxx
C………xxx
C12xxx

非常感谢!
搜索更多相关主题的帖子: SQL 语句 查询 
2007-11-26 19:42
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
这样子吗?

create table tb(
操作员 varchar(10),
收费金额 decimal(10,2),
收费日期 datetime
)

insert into tb values('A',123.32,'2007-1-1')
insert into tb values('A',112.34,'2007-1-1')
insert into tb values('A',101.36,'2007-1-1')
insert into tb values('B',90.38,'2007-1-1')
insert into tb values('B',79.4,'2007-1-2')
insert into tb values('C',68.42,'2007-1-2')
insert into tb values('C',234.56,'2007-1-2')
insert into tb values('D',400.7,'2007-2-5')
insert into tb values('D',566.84,'2007-2-6')
insert into tb values('A',34.56,'2007-2-6')
insert into tb values('A',356.77,'2007-2-7')

select 操作员,month(收费日期) 月份,sum(收费金额) 收费合计
from tb
group by 操作员,month(收费日期)
order by 操作员

drop table tb

/*
操作员   月份      收费合计                                    
---------- ----------- -------------------------
A          1           337.02
A          2           391.33
B          1           169.78
C          1           302.98
D          2           967.54

(所影响的行数为 5 行)
*/

我的msn: myfend@
2007-11-26 19:57
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
还是这样子呢?.

create table tb(
操作员 varchar(10),
收费金额 decimal(10,2),
收费日期 datetime
)

insert into tb values('A',123.32,'2007-1-1')
insert into tb values('A',112.34,'2007-1-1')
insert into tb values('A',101.36,'2007-1-1')
insert into tb values('B',90.38,'2007-1-1')
insert into tb values('B',79.4,'2007-1-2')
insert into tb values('C',68.42,'2007-1-2')
insert into tb values('C',234.56,'2007-1-2')
insert into tb values('D',400.7,'2007-2-5')
insert into tb values('D',566.84,'2007-2-6')
insert into tb values('A',34.56,'2007-2-6')
insert into tb values('A',356.77,'2007-2-7')

select top 12 mon=identity(int,0,1) into #mon from syscolumns

select  操作员,month(日期) 月份 into # from
(
    select a.操作员,dateadd(month,mon,'2007-01-01') 日期 from tb a,#mon b
    where dateadd(month,mon,'2007-01-01')<='2007-12-01'
) t
group by 操作员,month(日期)
order by 操作员

select a.操作员,a.月份,cast(isnull(收费合计,0) as varchar) 收费合计
from # a left join
(select 操作员,month(收费日期) 日期,sum(收费金额) 收费合计 from tb group by 操作员,month(收费日期)) b
on a.操作员=b.操作员 and a.月份=b.日期

drop table #mon,tb,#

/*
操作员        月份          收费合计                           
---------- ----------- ------------------------------
A          1           337.02
A          2           391.33
A          3           0.00
A          4           0.00
A          5           0.00
A          6           0.00
A          7           0.00
A          8           0.00
A          9           0.00
A          10          0.00
A          11          0.00
A          12          0.00
B          1           169.78
B          2           0.00
B          3           0.00
B          4           0.00
B          5           0.00
B          6           0.00
B          7           0.00
B          8           0.00
B          9           0.00
B          10          0.00
B          11          0.00
B          12          0.00
C          1           302.98
C          2           0.00
C          3           0.00
C          4           0.00
C          5           0.00
C          6           0.00
C          7           0.00
C          8           0.00
C          9           0.00
C          10          0.00
C          11          0.00
C          12          0.00
D          1           0.00
D          2           967.54
D          3           0.00
D          4           0.00
D          5           0.00
D          6           0.00
D          7           0.00
D          8           0.00
D          9           0.00
D          10          0.00
D          11          0.00
D          12          0.00

(所影响的行数为 48 行)
*/

我的msn: myfend@
2007-11-26 20:33
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
TO LS:
真有你的,答案也能做选择题.

Repeat  Life=Study;Until (death);
2007-11-27 01:30
cuizhihui
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-11-27
收藏
得分:0 
呵呵。。。  

还是,每天学习一点点,每天进步一点点。。。。

LS的LS真是高啊!  
2007-11-27 09:30
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
呵呵..
学习..学习.

我的msn: myfend@
2007-11-27 09:48
hxaudit
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-11-15
收藏
得分:0 
非常感谢!
2007-11-27 21:35
hxaudit
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-11-15
收藏
得分:0 
有点不明白:
insert into tb values('A',123.32,'2007-1-1')
insert into tb values('A',112.34,'2007-1-1')
insert into tb values('A',101.36,'2007-1-1')
insert into tb values('B',90.38,'2007-1-1')
insert into tb values('B',79.4,'2007-1-2')
insert into tb values('C',68.42,'2007-1-2')
insert into tb values('C',234.56,'2007-1-2')
insert into tb values('D',400.7,'2007-2-5')
insert into tb values('D',566.84,'2007-2-6')
insert into tb values('A',34.56,'2007-2-6')
insert into tb values('A',356.77,'2007-2-7')
中的收费金额要输入吗?可共有200多万条记录啊,非常感谢!
2007-11-27 21:38
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
你不是已经有数据了吗?
这是我的测试数据...与你的200多万记录无关.

我的msn: myfend@
2007-11-27 21:49
hxaudit
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-11-15
收藏
得分:0 
经测试在order by 中加入月份后完全可以实现,谢谢!感谢版主!
select 操作员,month(收费日期) 月份,sum(收费金额) 收费合计
from tb
group by 操作员,month(收费日期)
order by 操作员,月份


我在测试
select a.操作员,a.月份,cast(isnull(收费合计,0) as varchar) 收费合计
from # a left join
(select 操作员,month(收费日期) 日期,sum(收费金额) 收费合计 from tb group by 操作员,month(收费日期)) b
on a.操作员=b.操作员 and a.月份=b.日期
时收费金额列全部为0.00不知是什么原因?(没有使用drop table #mon,tb,#)
2007-11-28 20:08
快速回复:急!SQL语句查询问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021248 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved