行转列的思考

简介:

最近遇到一个行转列的问题,给定一个时间段,统计每天每个车的签到情况,用动态拼接的方法实现,受Varchar(8000)的影响,拼接的SQL语句不能太长,遇到这种动态列头的问题,这种方法肯定不是很好,希望有高人指点新招~

/*建立车信息表*/

复制代码
复制代码
go
if NOT EXISTS (select 1 from sysobjects where id = object_id('Car') AND type='U')
BEGIN 
     CREATE TABLE Car 
    (
     Carid UNIQUEIDENTIFIER ,
     CarName VARCHAR(100)
     )
end
go
/*插入一些数据*/
INSERT INTO Car  SELECT NEWID(),'car1' UNION
                 SELECT NEWID(),'car2' UNION
                 SELECT NEWID(),'car3' UNION
                 SELECT NEWID(),'car4' UNION
                 SELECT NEWID(),'car5' UNION
                 SELECT NEWID(),'car6' UNION
                 SELECT NEWID(),'car7' 
/*建立签到表*/
go
if NOT EXISTS (select 1 from sysobjects where id = object_id('CarTime') AND type='U')
BEGIN 
     CREATE TABLE CarTime 
    (
     CarTimeID UNIQUEIDENTIFIER ,
     CarId UNIQUEIDENTIFIER, 
     operateDate DATETIME
     )
END
go
/*插入一些数据*/
DECLARE @i INT 
SET @i=1
WHILE (@i<=10)
BEGIN 
   INSERT INTO CarTime SELECT NEWID(),CarId,'2012-08-'+CONVERT(VARCHAR(10),@i) FROM Car
   SET @i=@i+1
end      
/*统计一段时间所有车每天的签到情况*/
go
if  EXISTS (select 1 from sysobjects where id = object_id('sp_CarTimeReport') AND type='P')
BEGIN 
   DROP PROC sp_CarTimeReport
END 
go       
CREATE PROC [dbo].[sp_CarTimeReport]  
 @BeginDate DATETIME,  
 @EndDate DATETIME 
AS   
BEGIN    
   DECLARE @begin DATETIME  
   DECLARE @end DATETIME  
   SET @begin=CONVERT(DATETIME,CONVERT(VARCHAR(10),@BeginDate,120))  
   SET @end=CONVERT(DATETIME,CONVERT(VARCHAR(10),@EndDate,120))  
     
   DECLARE @index DATETIME  
   SET @index=@begin  
   DECLARE @sql VARCHAR(8000)  
   SET @sql=' SELECT car.CarName as 车名'  
   WHILE(@index<=@end)  
   BEGIN  
  SET @sql=@sql+' ,case when sum(case when convert(varchar(10),carTime.OperateDate,120)='''+ CONVERT(VARCHAR(10),@index,120) +''' then 1 else null end) is not null then '''' else null end  as '''+ CONVERT(VARCHAR(10),@index,120) +'''  '  
  SET @index=@index+1  
   end  
  SET @sql=@sql+' FROM  Car left join CarTime on Car.carid=CarTime.carid 
         group by Car.carid,car.CarName   
         order by Car.CarName '           
   EXEC(@sql)  
END  

 

--DROP TABLE car
--DROP TABLE cartime
--DROP PROC  sp_CarTimeReport

--EXEC sp_CarTimeReport '2012-08-01','2012-08-30'
复制代码
复制代码

运行效果如下:

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/09/18/2690072.html ,如需转载请自行联系原作者
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
1206 0
|
开发框架 iOS开发
iOS开发之AVKit框架使用
iOS开发之AVKit框架使用
1297 0
iOS开发之AVKit框架使用
|
5月前
|
机器学习/深度学习 JSON 自然语言处理
DeepSeek 双百万 token 窗口对话数据的量化对比分析
本文基于第一个百万 token 窗口(以下简称 窗口 1)与第二个百万 token 窗口(以下简称 窗口 2)的完整对话数据,采用量化对比的方法,系统揭示两套对话在轮次、文本长度、语种构成以及估算 token 消耗方面的显著差异。研究发现,尽管窗口 2 的轮次和总字数均低于窗口 1,但其每轮对话的文本密度与估算 token 消耗显著更高。结合窗口 2 在生成 5 篇深度分析文章过程中的实际经验,本文提出“长文本生成的隐性 token 消耗”假说,并引用近期相关研究提供理论支撑。该假说为理解大模型在真实工程环境中的行为提供了新视角,也为用户在设计跨窗口连续工程时的指标控制与迁移提供了可操作的参考
DeepSeek 双百万 token 窗口对话数据的量化对比分析
|
5月前
|
编解码 弹性计算 安全
阿里云服务器4核8G配置收费标准与活动价格:u2i实例1252.63元起,c9i实例3147.56元起
阿里云为4核8G配置云服务器提供多样实例规格,如经济型e、通用算力型u1/u2i/u2a及计算型c9i等,以满足不同应用场景需求,且收费标准因实例规格和计费模式而异。选购时,用户可从性能、场景、预算及长期规划综合考量。对于预算敏感且负载较轻的任务,经济型e实例是优选;追求高性价比,可选通用算力型u2a实例;需要稳定计算性能的,推荐通用算力型u2i实例;高性能计算需求,则应选计算型c9i实例。
|
5月前
|
XML JSON 数据挖掘
京东商品详情数据一键获取,item_get API接口讲解
京东item_get是获取单商品详情的核心API,支持一键拉取标题、价格、SKU、库存、详情HTML等结构化数据,适用于反向海淘、代购、ERP同步及比价分析等场景,分基础版与完整版,需认证授权后调用。(239字)
|
11月前
|
Web App开发 缓存 前端开发
网站模板下载网站模板源码(非SAAS)打造高端网站
文章介绍如何通过下载非SaaS网站模板源码,打造高端网站,强调模板质量、功能完善及部署环境的重要性。
348 0
|
12月前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点、配置性能参数表
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能计算能力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备高安全、低延迟、强扩展等优势。
|
8月前
|
传感器 存储 搜索推荐
【开源代码】基于STM32的智能杯垫—喝水提醒系统设计与实现
基于STM32的智能杯垫,集成红外检测、OLED显示与语音提醒,实现喝水定时提醒功能。支持按键设置、多模态交互,提升饮水健康体验,开源设计,可扩展蓝牙/Wi-Fi,打造个性化智能健康设备。(239字)
【开源代码】基于STM32的智能杯垫—喝水提醒系统设计与实现
|
机器学习/深度学习 存储 数据可视化
KG4MM:融合知识图谱与多模态数据预测药物相互作用
本文探讨了用于多模态学习的知识图谱(KG4MM)在药物相互作用(DDI)预测中的应用。知识图谱通过整合药物的分子图像和文本描述,提供结构化先验知识,指导模型关注关键信息。具体实现中,利用图神经网络(GNN)连接知识图谱与多模态数据,通过注意力机制提取最具区分性的特征。以 Goserelin 和 Desmopressin 为例,模型结合直接边关系和共享节点路径,生成透明可解释的预测结果。实验表明,KG4MM 方法显著提升了预测准确性与可解释性,为生物医学领域提供了新思路。
717 0
KG4MM:融合知识图谱与多模态数据预测药物相互作用
|
JSON 安全 数据安全/隐私保护
Python安全守护神:OAuth与JWT,让黑客望而却步的魔法阵🧙‍♂️
【10月更文挑战第2天】在网络世界中,数据安全至关重要。本文以教程形式介绍如何在Python环境中使用OAuth 2.0和JSON Web Tokens (JWT) 构建安全认证系统。OAuth 2.0 作为一种开放标准授权协议,允许客户端安全访问资源;JWT 则用于安全传输信息。二者结合可构建高效且安全的认证体系。文中详细介绍了OAuth 2.0 的工作流程及如何使用Flask-OAuthlib实现认证;并通过PyJWT库展示了JWT的生成与验证方法。最后探讨了两者结合使用的具体实践,旨在为开发者提供全面的认证解决方案。随着技术发展,这两种技术将继续在认证领域发挥重要作用。
394 5

热门文章

最新文章