SQL语句如何使用日期作为列
2012-05-04 23:25
274 查看
第一回写原创文章大家多多包含啊!今天一个朋友找我写个东西,就是在SQL2000数据库下使用一个表中的日期数据作为列呈现一个打印报表。需求如下:
简单说就是按天求和当天的班组日产值。不要问我日产值是什么。我也不知道。我原来的做法是在应用层多次查询数据库并将获得的结果集整合出一张报表。但是那位老哥不知道用了C++的什么组件DAO返回的结果集不能通过程序修改,只能直接在页面呈现。这可要了我的老命。经详细研究写出了如下语句。最终可实现需求。那个数据神马的我就不提供插入语句了大家心领神会就好。
其实简单的思路就是把一条条的SQL片段拼装成一条SQL语句。哦对了,如果使用如下方式的话建议发在存储过程中,我比较懒就没写。大家多多包含。最后需要说的是建立表的时候用中文真心不好,还是用英文吧。或许有的人会问,为什么例子是中文的呢?回答是表结构是他给的我怕换了他看不懂……残念啊!具体每条语句的意义详见注释。如果是其他数据库也可以仿照这个例子写。因为原理是不变的。唯一有问题的是如果时间太多会造成SQL片段过长的问题。需要注意!OK其他的看代码吧,不解释了!
2012-05-01 | 2012-05-02 | 2012-05-03 | 2012-05-04 | |
分公司1 | 1000 | 1000 | 1000 | 1000 |
分公司2 | 1000 | 1000 | 1000 | 1000 |
其实简单的思路就是把一条条的SQL片段拼装成一条SQL语句。哦对了,如果使用如下方式的话建议发在存储过程中,我比较懒就没写。大家多多包含。最后需要说的是建立表的时候用中文真心不好,还是用英文吧。或许有的人会问,为什么例子是中文的呢?回答是表结构是他给的我怕换了他看不懂……残念啊!具体每条语句的意义详见注释。如果是其他数据库也可以仿照这个例子写。因为原理是不变的。唯一有问题的是如果时间太多会造成SQL片段过长的问题。需要注意!OK其他的看代码吧,不解释了!
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rcllr]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[rcllr] GO
CREATE TABLE [dbo].[rcllr] ( [订单编号] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [分公司] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [投产班组] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [班组人数] [int] NULL , [出工人数] [int] NULL , [班组日产量] [int] NULL , [产量日期] [datetime] NULL , [班组日产值] [numeric](18, 2) NULL , [班组完成任务数] [int] NULL , [班组剩余任务数] [int] NULL ) ON [PRIMARY] GO
declare @starttime datetime,@endtime datetime,@sql varchar(2000) set @starttime = '2012-05-01';--起始时间 set @endtime = '2012-05-06';--结束时间 set @sql = 'select 分公司';--需要查询什么字段在这里拼装 while @starttime < @endtime begin print @starttime set @starttime = @starttime+1 --'''表示输出一个单引号 --'''+Convert(Varchar(10),@starttime,120)+'''表示 将变量@starttime转换为字符串 '2012-05-05' set @sql = @sql +',(select sum(班组日产值) from rcllr M where M.分公司=N.分公司 and M.产量日期='''+Convert(Varchar(10),@starttime,120)+''') as '''+Convert(Varchar(10),@starttime,120)+'''' end set @sql = @sql+' from rcllr N group by 分公司'--其他查询条件在这里拼装 exec(@sql) --执行SQL print @sql --打印SQL
相关文章推荐
- 在Oracle使用sql语句中如何插入日期格式的数据
- 在Oracle使用sql语句中如何插入日期格式的数据
- 使用笔记:mysql与oracle进行sql查询时如何表示日期
- MySQL查询不使用索引汇总 + 如何优化sql语句
- 教你如何在 sql server 2005 使用 sql 语句获取字段的说明信息
- 使用sql语句查询日期在一定时间内的数据
- SQL语句中如何使用含有if....else...判断语句
- 如何在Django中直接使用sql语句
- sql语句中日期型转成字符型,日期比较常出现错误总结和case when的使用
- 如何在游标for循环中使用动态SQL语句?
- 在编写PL/SQL代码中使用SELECT语句时如何避免例外发生
- 如何用T-SQL使用最短的语句输出100以内素数?
- 在SqlServer中如何使用Sql语句将一张表的数据复制到另一张表
- 在SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作
- 如何写出一条SQL语句:取出表A中第31~40条记录(SQLServer,以自动增长的ID作为主键
- 两表关联的分组的交叉表,如何使用sql语句完成。目标如下图
- 如何在EXCEL中使用sql语句
- 如何使用with...as...构造SQL语句
- 使用笔记:mysql与oracle进行sql查询时如何表示日期
- 如何在游标for循环中使用动态SQL语句?