create procedure p_1(
@start varchar(20)--开始时间,
@end varchar(20)--结束时间,
@flag int --0:表示查询申请时间,1:表示查核销时间)
as
if @flag=0
select 城市,[管理费]=sum(case 费用名称 when '管理费' then 申请金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 申请金额 else 0 end)
from tbname where 申请时间 between @start and @end
else
select 城市,[管理费]=sum(case 费用名称 when '管理费' then 核销金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 核销金额 else 0 end)
from tbname where 核销时间 between @start and @end
go
@start varchar(20)--开始时间,
@end varchar(20)--结束时间,
@flag int --0:表示查询申请时间,1:表示查核销时间)
as
if @flag=0
select 城市,[管理费]=sum(case 费用名称 when '管理费' then 申请金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 申请金额 else 0 end)
from tbname where 申请时间 between @start and @end
else
select 城市,[管理费]=sum(case 费用名称 when '管理费' then 核销金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 核销金额 else 0 end)
from tbname where 核销时间 between @start and @end
go
解决方案 »
- 如何建立有空项的查询?
- 求SQL
- 字段内这种批量替换有没有办法?
- 为什么我下载安装mysql-4.1.8后,在命令行下进入mysql\bin下,运行mysqld-nt --install,正常。再开启mysql服务运行net start mysql就报错
- 关于NULL
- 问一个我学了一年数据库,也没有明白的问题。
- 急,关于数据库规划的问题(给50分)
- identity的列,当增加到其最大值后,会发生什么情况?
- 用 SQL Server 做 MIS/MRP 的朋友请进. 关于超大数据量 !
- PB 中一个窗口能不能打开两个以上的实例
- 奇怪的sql语句 大家指教一下 在线等
- 请问根据日期和权限分页显示的问题!高手进来帮帮忙
create procedure p_1(
@start varchar(20)--开始时间,
@end varchar(20)--结束时间)
asselect 城市,[管理费]=sum(case 费用名称 when '管理费' then 申请金额-核销金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 申请金额-核销金额 else 0 end)
from tbname
where (申请时间 between @start and @end) or (核销时间 between @start and @end)go
则金额是(申请金额-核销金额)
@start varchar(20)--开始时间,
@end varchar(20)--结束时间)
asselect 城市,[管理费]=sum(case 费用名称 when '管理费' then 申请金额-核销金额 else 0 end),
[特价费]==sum(case 费用名称 when '特价费' then 申请金额-核销金额 else 0 end)
from tbname
where (申请时间 between @start and @end) or (核销时间 between @start and @end)go
你这样做只是满足了一个条件开始时间<申请时间<核销时间<结束时间
其它条件还没做出来,你查询时间2005-04-2005-05,出来的结果就跟我的要求不一样了
有的时候,那个临时表的字段的值是=申请金额(如果报核时间为NULL或报核时间>结束时间且申请时间>开始时间)
有的时候,那个临时表的字段的值是=(-核销金额),如果查询开始时间>申请时间且报核时间<结束时间