注册 登录
编程论坛 SQL Server论坛

急!谁帮忙把这个表给解释一下?谢谢!

张汉卿 发布于 2010-04-17 21:00, 1080 次点击
这个表我没看懂,谁帮忙给仔细解释一下?
只有本站会员才能查看附件,请 登录
16 回复
#2
cnfarer2010-04-18 08:16
这是一个"客户交易表",存储的是每次交易的信息:有交易的日期,客户号,流水号,所购基金情况,交易结果等.
#3
张汉卿2010-04-18 15:19
回复 2楼 cnfarer
统计:每个月新增的开户数,区分机构或个人客户, 按月统计
客户开户时间判断标准为第一次交易成功日期。
主要是这个条件   (按月统计
客户开户时间判断标准为第一次交易成功日期。)
我不知道怎样在查询语句中表达出来。你给给我解释一下。谢谢!

[ 本帖最后由 张汉卿 于 2010-4-18 16:32 编辑 ]
#4
自欺欺人2010-04-18 19:01
这个问题我也想问……
#5
张汉卿2010-04-19 20:31
回复 2楼 cnfarer
这道题 你知道怎么做吗 ?我被新增的客户数 这个条件给困住啦 。
#6
misswang2010-04-20 09:04
.
#7
czyzhuo2010-04-20 09:31
回复 5楼 张汉卿
记下新增用户的时间,然后再按新增时间去Count就可以了
#8
张汉卿2010-04-20 12:52
回复 7楼 czyzhuo
记下开户时间,是没法查询出来的。如果客户在3 月份 开了户 并且在四月份也进行了交易,这时间怎么确定啊?查询在某一个月份之内第一次交易成功的客户数量 才是在这个月内新增的客户数量。第一次交易成功这个条件很重要。我不知道第一次交易成功如何用查询语句表达出来。
#9
张汉卿2010-04-20 12:54
回复 2楼 cnfarer
你怎么不回复啊?
#10
cnfarer2010-04-20 14:03
自己试一下吧!(我没测试)
select c.n_year 年,c.n_month 月,c.c_custtype 客户类型, count(distinct C.C_CUSTNO) 开户数
    from    (select a.C_CUSTNO,a.c_custtype,b.year(d_date) n_year,b.month(d_date) n_month from cc_trequest a
            inner join
            (select C_CUSTNO,min(D_DATE) d_date from cc_trequest group by C_CUSTNO) b
            on a.C_CUSTNO=b.C_CUSTNO and a.d_date=b.d_date) c
    group by c.n_year,c.n_month,c_custtype
#11
张汉卿2010-04-20 15:58
回复 10楼 cnfarer
恩 试试

[ 本帖最后由 张汉卿 于 2010-4-20 17:09 编辑 ]
#12
张汉卿2010-04-20 17:08
回复 10楼 cnfarer
我没看懂你写的查询语句,我自己的理解把(第一次开户时间所在的时间段)这个条件表达出来,这个问题就解决啦。但是我不知道怎样表达, 这个第一次 如何用SQL 语言表达啊?
#13
cnfarer2010-04-21 06:19
1.从你说明上看,一个用户开户是指他的第一次交易。那么这个日期就应该是最早的,就可以用MIN(D_DATE)找出来,从这个日期中就可以得到年、月。
2.再根据年、月、用户类型汇总
#14
张汉卿2010-04-21 15:41
回复 13楼 cnfarer
我试啦,查询语句中的年月都是无效的 无法查询。
#15
张汉卿2010-04-22 10:43
回复 13楼 cnfarer
这道题对于我很重要 ,希望你再给我详细说一下。万分感谢!
#16
cnfarer2010-04-22 11:26
回复 14楼 张汉卿
没什么大问题,只是那个"b."写错位置了,应该写在括号内!
select c.n_year 年,c.n_month 月,c.c_custtype 客户类型, count(distinct c.C_CUSTNO) 开户数
    from    (select a.C_CUSTNO,a.c_custtype,year(b.d_date) n_year,month(b.d_date) n_month from cc_trequest a
            inner join
            (select C_CUSTNO,min(D_DATE) d_date from cc_trequest group by C_CUSTNO) b
            on a.C_CUSTNO=b.C_CUSTNO and a.d_date=b.d_date) c
    group by c.n_year,c.n_month,c_custtype

[ 本帖最后由 cnfarer 于 2010-4-22 12:21 编辑 ]
#17
cnfarer2010-04-22 11:54
获得用户最早交易日期(用户编号,交易日期):
select C_CUSTNO,min(D_DATE) d_date from cc_trequest group by C_CUSTNO
根据上面结果,获得用户最早交易信息:用户编号,类型,年份,月份
select a.C_CUSTNO,a.c_custtype,year(b.d_date) n_year,month(b.d_date) n_month from cc_trequest a
            inner join
            (select C_CUSTNO,min(D_DATE) d_date from cc_trequest group by C_CUSTNO) b
            on a.C_CUSTNO=b.C_CUSTNO and a.d_date=b.d_date
最外层就是从第二个结果进行汇总查询了
1