表A- 2006保存本年度话费情况,
帐户 开户日期 1月话费 2月话费... 8月话费 .... 12月话费 本年平均话费
1001 20050105 42 40 ... 50 ... 0 45
1002 20060205 0.0 60 ... 70 ... 0 75
.....
1100 20060505 0.0 0 ... 70 ... 0 75如何每月修改"本年平均话费"
注意: 8月话费,8月更新,更新后修改该帐户的"本年平均话费"
如果开户日期是200505 ,那么他的"本年平均话费"= avg(1月话费+ ...+6月话费+ 7月话费 +8月话费)
如果开户日期是200605 ,那么他的"本年平均话费"= avg( 5月话费 +6月话费 + 7月话费 +8月话费)
如果开户日期是200606 ,那么他的"本年平均话费"= avg( 6月话费 + 7月话费 +8月话费)我想写一个存储过程,每月动态修改"本年平均话费",如何写?
帐户 开户日期 1月话费 2月话费... 8月话费 .... 12月话费 本年平均话费
1001 20050105 42 40 ... 50 ... 0 45
1002 20060205 0.0 60 ... 70 ... 0 75
.....
1100 20060505 0.0 0 ... 70 ... 0 75如何每月修改"本年平均话费"
注意: 8月话费,8月更新,更新后修改该帐户的"本年平均话费"
如果开户日期是200505 ,那么他的"本年平均话费"= avg(1月话费+ ...+6月话费+ 7月话费 +8月话费)
如果开户日期是200605 ,那么他的"本年平均话费"= avg( 5月话费 +6月话费 + 7月话费 +8月话费)
如果开户日期是200606 ,那么他的"本年平均话费"= avg( 6月话费 + 7月话费 +8月话费)我想写一个存储过程,每月动态修改"本年平均话费",如何写?
解决方案 »
- 导入EXCEL表的问题~~建立到服务器的连接时发生错误
- 求一条SQL语句,急用
- “update 表 set 字段='' where 1=2”这个语句锁表不行。请高手帮忙
- 有关SQL中有分隔符的问题
- 我在用 INSERT 向表中插入字符数据时,字符串中有不确定的单引号怎么办呢?
- 编程时利用怎样利用sqlserver 读取oracle数据库的数据?
- 怎樣定義同時觸發多條記錄的觸發器?
- 按日期查询中 为什么我查询5月11号 到14号 它只显示13号到14号的内容
- 大家一起讨论这个问题
- 急等
- 在本地数据库上建立作业(JOB),要把数据写到另一台服务器上,请问该如何操作。
- 帮我看下这个带事务的存储过程问题。急!!!!
如果开户日期是200605 ,那么他的"本年平均话费"= avg( 5月话费 +6月话费 + 7月话费 +8月话费)
如果开户日期是200606 ,那么他的"本年平均话费"= avg( 6月话费 + 7月话费 +8月话费)
========
没有看懂..你的开户日期和统计月分是什么关系..
(1月话费+2月话费+...+12月话费)/
(case
when datediff(year,开户日期,getdate())>0
then month(getdate())
else (datediff(month,开户日期,getdate()))+1
end)
from
表A
(select 帐户,开户日期,一月话费 MonthFee,TheMonth=1 from tb
union all
select 帐户,开户日期,二月话费,2 from tb
union all
select 帐户,开户日期,三月话费,3 from tb
union all
select 帐户,开户日期,四月话费,4 from tb
union all
select 帐户,开户日期,五月话费,5 from tb
union all
select 帐户,开户日期,六月话费,6 from tb
union all
select 帐户,开户日期,七月话费,7 from tb
union all
select 帐户,开户日期,八月话费,8 from tb
union all
select 帐户,开户日期,九月话费,9 from tb
union all
select 帐户,开户日期,十月话费,10 from tb
union all
select 帐户,开户日期,十一月话费,11 from tb
union all
select 帐户,开户日期,十二月话费,12 from tb
) x
WHERE TheMonth BETWEEN Month(开户日期) AND Month(GetDate())
GROUP BY 帐户,开户日期
WHERE TheMonth BETWEEN (CASE WHEN YEAR(开户日期)<YEAR(Getdate()) THEN 1 ELSE Month(开户日期) END) AND Month(GetDate())