多表查询统计

nandorin 2009-08-19 02:04:44

存在如下一系列表:
TABLE_200601,TABLE_200602,TABLE_200603......
规律:每月生成一个相同结构的表,前缀TABLE_+年月为新的表名。

TABLE_200601表结构:
sBegin datetime,sEnd datetime,sName varchar(20),sDept varchar(20),sMemo varchar(20)


--单表的话比较简单
select sName,count(*) as vcCountNumber from TABLE_200601 group by sName
select sDept,count(*) as vcCountNumber from TABLE_200601 group by sDept

--多表的话如何写成一个存储过程来执行,实现统计的功能,求教~

我需要建立一个存储过程 pro_statbytype @sBegin @sEnd @sType
exec pro_statbytype '2006-1-1 00:00:00.000','2006-5-1 00:00:00.000','sName'















...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pj9413837 2009-08-20
  • 打赏
  • 举报
回复

CREATE PROCEDURE pro_statbytype
@sBegin datetime,
@sEnd datetime,
@sType varchar(20)
as
begin
SET NOCOUNT ON;
declare @l int
declare @n int
declare @sql_str varchar(1000)
set @n=1
set @l=datediff(month,@sBegin,@sEnd)+1
set @sql_str=''
while @n <=@l
begin
if @n=1
begin
set @sql_str='select (select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
else
begin
set @sql_str='+(select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
set @n=n+1
end
--print @sql_str
exec(@sql_str)
end


这次发的检查了语法,没语法报错了!
其他的你得自己测试了~~~
pj9413837 2009-08-20
  • 打赏
  • 举报
回复

CREATE PROCEDURE pro_statbytype
@sBegin datetime
@sEnd datetime
@sType varchar(20)
as
begin
SET NOCOUNT ON;
declare @l int
declare @n int
declare @sql_str varchar(1000)
set @n=1
set @ldatediff(month,@sBegin,@sEnd)+1
set @sql_str=''
while @n <=@l
begin
if @n=1
begin
set @sql_str='select (select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
else
begin
set @sql_str='+(select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
set @n=n+1
end
'print @sql_str
exec(@sql_str)
end
pj9413837 2009-08-20
  • 打赏
  • 举报
回复
set @l=datediff(month,@sBegin,@sEnd)+1
nandorin 2009-08-19
  • 打赏
  • 举报
回复
set datediff(month,@sBegin,@sEnd)+1
这里语法错误
nandorin 2009-08-19
  • 打赏
  • 举报
回复
好,谢谢,我先测试下。
pj9413837 2009-08-19
  • 打赏
  • 举报
回复
我没测试,应该没什么问题,你先试试,有问题再发帖子
pj9413837 2009-08-19
  • 打赏
  • 举报
回复
CREATE PROCEDURE pro_statbytype
@sBegin datetime
@sEnd datetime
@sType varchar(20)
as
begin
SET NOCOUNT ON;
declare @l int
declare @n int
declare @sql_str varchar(1000)
set @n=1
set datediff(month,@sBegin,@sEnd)+1
set @sql_str=''
while @n<=@l
begin
if @n=1
begin
set @sql_str='select (select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
else
begin
set @sql_str='+(select count(*) from TABLE_'+replace(convert(varchar(7),dateadd(month,@n,@sBegin),120),'-','')+' where sName='''+@sType+''')'
end
set @n=n+1
end
'print @sql_str
exec(@sql_str)
end
microsofttyc 2009-08-19
  • 打赏
  • 举报
回复
不会,帮顶
汽车租赁系统的开发过程中,采用B/S架构,主要使用Java主流技术进行开发,结合最新流行的SSM框架。使用Mysql数据库和Eclipse或者IDEA开发环境。包括登录、首页、客户管理、车辆管理、汽车出租、出租单管理、汽车入库、检查单管理、系统管理等功能,适合二次开发课程设计、毕业设计等。业务模块1、客户管理客户列表客户分页和模糊查询客户添加、修改、删除导出客户数据2、车辆管理车辆列表车辆车辆分页和模糊查询车辆添加、修改、删除3、汽车出租根据客户身份证查询所有未出租的车辆信息进行出租4、出租单管理多条件的模糊查询和分页出租单的修改、删除、导出5、检查单管理多条件模糊查询和分页检查单修改导出检查单系统模块1、用户登陆校验用户名和密码登陆成功将登陆信息写入登陆日志未登录进行拦截2、菜单管理全查询菜单和根据左边的树查询不同菜单菜单的添加、修改、删除3、角色管理全查询角色和模糊查询角色的添加、修改、删除4、用户管理全查询用户和模糊查询用户的添加、修改、删除以及重置密码5、数据源的监控(druid monitor)6、统计分析客户地区统计分析公司年度月份销售额统计分析业务员年度销售额统计分析 开发技术和环境开发环境操作系统:Windows/Mac OS编程语言:Java开发工具:IDEA、Navicat项目构建:Maven 3.5.2服务器:Tomcat 8.5数据库:MySQL 8.0开发技术后台技术选型:SSM(Spring SpringMVC Mybatis)前端技术选型:LayUI、dtree、echarts测试账号管理员: admin/123456业务员:zhangsan/123456 部分运行截图分为管理员与业务员角色,用于汽车租赁后台管理系统,功能相对完善!登录 首页 客户管理车辆管理 车辆添加 汽车出租 出租单管理 汽车入库 检查单管理菜单管理 角色管理 用户管理 日志管理 公告管理 数据源监控客户地区统计分析 公司年度月份销售额统计分析业务员年度销售额论文截图源码截图数据库截图     

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧