Redian新闻
>
请教一下这个report的query应该怎么样写?
avatar
请教一下这个report的query应该怎么样写?# Database - 数据库
b*m
1
一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
宵无限欢颜:-)
avatar
s*u
2
一半pleather, 一半cotton canvas,谢谢观赏:P
avatar
i*7
3
SQL 2008
有这样一个table:
phonenum calltime rowID
1 2/4/2010 1
4 2/8/2010 2
2 6/18/2010 3
2 6/20/2010 5
3 8/20/2010 6
4 2/9/2010 7
4 2/11/2010
… … …
我现在要做一个report,就是显示每个phonenum每天收到多少个call,只需要显示前90天
.比如phone1的第一个call是2/4.从那天开始的往后90天,每天收到多少个call.phone4
的第一个call是2/8.那么分别是day1有一个call, day2有一个call,day4有一个call.
具体report的格式如下.
phonenum 1st day 2nd day 3rd day 4th day … 90th day
1 1
2 1 1
3 1
4 1 1 1
有没有大牛知道这个怎么做?
谢谢!
avatar
m*g
4
汤圆元宵一起吃,
avatar
s*u
5


【在 s****u 的大作中提到】
: 一半pleather, 一半cotton canvas,谢谢观赏:P
avatar
i*7
6
格式如下也可以:
day phone1 phone2 phone3
day1
day2
day3

day90
包子谢!!

【在 i******7 的大作中提到】
: SQL 2008
: 有这样一个table:
: phonenum calltime rowID
: 1 2/4/2010 1
: 4 2/8/2010 2
: 2 6/18/2010 3
: 2 6/20/2010 5
: 3 8/20/2010 6
: 4 2/9/2010 7
: 4 2/11/2010

avatar
b*m
7
嗯,南汤圆北元宵~

【在 m*****g 的大作中提到】
: 汤圆元宵一起吃,
avatar
j*8
8
很美貌!
avatar
c*e
9
先做一个辅助table
select phonenum ,
min(calltime) as min_calltime
from your_table
group by 1
然后数的时候用case
select a.phonenum ,
count(case when a.calltime between b.min_calltime and b.min_calltime
+ 1
then a.phonenum else null end) as day1_cnt ,
...
from your_table a
join table_above b
on a.phonenum = b.phonenum
group by 1
order by 1 ;

【在 i******7 的大作中提到】
: SQL 2008
: 有这样一个table:
: phonenum calltime rowID
: 1 2/4/2010 1
: 4 2/8/2010 2
: 2 6/18/2010 3
: 2 6/20/2010 5
: 3 8/20/2010 6
: 4 2/9/2010 7
: 4 2/11/2010

avatar
C*H
10
PAI

【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
H*f
11
漂亮啊

【在 s****u 的大作中提到】

avatar
i*7
12
谢谢回复.包子送上。
但是这个a.calltime between b.min_calltime and b.min_calltime + 1貌似不work啊
..而且是90天,要写90个case when么?

【在 c*******e 的大作中提到】
: 先做一个辅助table
: select phonenum ,
: min(calltime) as min_calltime
: from your_table
: group by 1
: 然后数的时候用case
: select a.phonenum ,
: count(case when a.calltime between b.min_calltime and b.min_calltime
: + 1
: then a.phonenum else null end) as day1_cnt ,

avatar
y*9
13
元宵快乐。排~
avatar
z*a
14
厉害!
MM哪里买的pleather啊?
针脚很细,应该是用了缝纫机吧?
想自己手工一个MM图上这样的wristlet。。跟买的差不多呀~!赞~
avatar
B*g
15
这个是第一天的,sql里的...就是1到90。hoho

1

【在 i******7 的大作中提到】
: 谢谢回复.包子送上。
: 但是这个a.calltime between b.min_calltime and b.min_calltime + 1貌似不work啊
: ..而且是90天,要写90个case when么?

avatar
R*s
16
吃!

【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
t*e
17
求科普,啥是pleather啊?
avatar
g*l
18
这个是最简单的
select phonenum,
DateDiff(dd, '12/31/2009',phonedate)
as DayNumber,
1 as PhoneCount
into PhoneCountTemp
from table
select phonenum,DayNumber, sum(phonecount) as PhoneCount
from PhoneCountTemp
group by phonenum, daynumber
order by phonenum, daynumber
avatar
x*9
19
pai!
yuanxiao jie kuaile!

【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
s*u
20
Joann有的,就是人造皮吧,仿皮?不是真皮就对了
avatar
c*e
21
你有91个column,当然要写90个count了

【在 i******7 的大作中提到】
: 谢谢回复.包子送上。
: 但是这个a.calltime between b.min_calltime and b.min_calltime + 1貌似不work啊
: ..而且是90天,要写90个case when么?

avatar
R*n
22
吃!
avatar
l*0
23
赞~~
avatar
i*7
24
谢谢.包子送上..
但貌似这个是从1/1开始算第一天,实际上有的电话是从2月1号才收到call.我想以第一
次收到call的时候算第一天,而不是按照日历算.

【在 g***l 的大作中提到】
: 这个是最简单的
: select phonenum,
: DateDiff(dd, '12/31/2009',phonedate)
: as DayNumber,
: 1 as PhoneCount
: into PhoneCountTemp
: from table
: select phonenum,DayNumber, sum(phonecount) as PhoneCount
: from PhoneCountTemp
: group by phonenum, daynumber

avatar
d*i
25


【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
i*7
26
哦.我可能没有说清楚.实际上这个calltime的格式是:mm/dd/yyyy hh:mm:ss的.所以觉
得那个+1可能不work.如果格式包括时间,该怎么写呢?

发信人: cheungche (你不乖), 信区: Database
标 题: Re: 请教一下这个report的query应该怎么样写?
发信站: BBS 未名空间站 (Mon Oct 18 18:44:55 2010, 美东)
先做一个辅助table
select phonenum ,
min(calltime) as min_calltime
from your_table
group by 1
然后数的时候用case
select a.phonenum ,
count(case when a.calltime between b.min_calltime and b.min_calltime
+ 1
then a.phonenum else null end) as day1_cnt ,
...
from your_table a
join table_above b
on a.phonenum = b.phonenum
group by 1
order by 1 ;

【在 c*******e 的大作中提到】
: 你有91个column,当然要写90个count了
avatar
R*m
27
元宵快乐
avatar
i*7
28
谢谢回复.包子送上。
那有啥别的写法么?

【在 B*****g 的大作中提到】
: 这个是第一天的,sql里的...就是1到90。hoho
:
: 1

avatar
R*m
29
你这肉馅还是芝麻的?

【在 d*******i 的大作中提到】

avatar
B*g
30
哪天你用oracle,我给你个解法

【在 i******7 的大作中提到】
: 谢谢回复.包子送上。
: 那有啥别的写法么?

avatar
d*i
31
嘛都没有,本想放豆沙的,嫌麻烦~

【在 R********m 的大作中提到】
: 你这肉馅还是芝麻的?
avatar
g*l
32
我改了,如果把2/1/2010当第一天,就是DATEDIFF(DD,'1/31/2010',PHONEDATE)
avatar
R*m
33
那和糯米粉在澡堂里搓澡有啥区别?

【在 d*******i 的大作中提到】
: 嘛都没有,本想放豆沙的,嫌麻烦~
avatar
c*e
34
你cast成日期不就可以了?

【在 i******7 的大作中提到】
: 哦.我可能没有说清楚.实际上这个calltime的格式是:mm/dd/yyyy hh:mm:ss的.所以觉
: 得那个+1可能不work.如果格式包括时间,该怎么写呢?
:
: 发信人: cheungche (你不乖), 信区: Database
: 标 题: Re: 请教一下这个report的query应该怎么样写?
: 发信站: BBS 未名空间站 (Mon Oct 18 18:44:55 2010, 美东)
: 先做一个辅助table
: select phonenum ,
: min(calltime) as min_calltime
: from your_table

avatar
v*6
35
元宵节快乐!
avatar
A*8
36
元宵节快乐!
avatar
s*0
37
排!
avatar
l*0
38
avatar
s*s
39
吃,元宵快乐!
avatar
G*5
40
牌!
avatar
c*p
41
pai

【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
c*p
42
pai

【在 b***m 的大作中提到】
: 一年又一年,嘴上吃着汤圆,心里想着团圆。向各位版友说一声珍重,道一声平安,元
: 宵无限欢颜:-)

avatar
c*p
43
邻居的糖水煮汤圆,很好吃

【在 d*******i 的大作中提到】

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。