SqlServer常用语句整理
先记录下来 以后整理
1.常用语句
1.1update连表更新
update a set a.YCaseNo = a.WordName + '【'+ convert(varchar,a.CaseYear) + '】'+ '第'+ convert(varchar,b.YCaseNo) +'号'
from [TCase_WordInfo] a inner join dbo.TCase_DetailInfo b on a.CSerialNo = b.CSerialNo
2.统计
select a.CaseYear,e.Data as keptdate,COUNT(distinct(a.CSerialNo)) as words,COUNT(distinct( c.VolumeId)) as volumns,COUNT(distinct(d.SerialNo)) as documents from dbo.TCase_WordInfo a inner join dbo.TCase_BaseInfo b on a.CSerialNo=b.CSerialNo inner join dbo.TCase_DetailInfo f on b.CSerialNo=f.CSerialNo left join TCase_VolumeInfo c on a.CSerialNo = c.CSerialNo left join TCase_DocumentInfo d on c.VolumeId = d.VolumeId left join(select DataId, Data from dbo.TDictionary_BaseData where Id = 'CAIS_02_001') e on b.KeepingTermId = e.DataId where d.IsDeleted=0 and f.Undertaker like '%任双添%' group by a.CaseYear,e.Data
3.存储过程
use Cais_DB;
go
--判断是否存在存储过程,如果存在则删除
if exists(select * from sys.procedures where name='')
drop procedure 存储过程名称;
go
--创建存储过程
create procedure Proc_StaticsWordInfo
@StartCaseYear int,
@EndCaseYear int,
@DataId int,
@Undertaker nvarchar(50)
as
begin
declare @Sql nvarchar(2000) = ''
declare @Where nvarchar(1000) = ''
set @Sql = 'select a.CaseYear,COUNT(distinct(a.CSerialNo)) as words,e.Data as keptdate,COUNT(distinct( c.VolumeId)) as volumns,COUNT(distinct(d.SerialNo)) documents from dbo.TCase_WordInfo a inner join dbo.TCase_BaseInfo b on a.CSerialNo=b.CSerialNo left join TCase_VolumeInfo c on a.CSerialNo = c.CSerialNo left join TCase_DocumentInfo d on c.VolumeId=d.VolumeId left join (select DataId,Data from dbo.TDictionary_BaseData where Id = "CAIS_02_001") e on b.KeepingTermId=e.DataId'
if(@StartCaseYear is not null and @StartCaseYear <> '' and @EndCaseYear is not null and @EndCaseYear <> '' )
set @Where = @Where + ' a.CaseYear > ' + @StartCaseYear + ' a.CaseYear < ' + @EndCaseYear
if(@DataId is not null and @DataId <> '')
set @Where = @Where + ' e.@DataId =' + @DataId
if(@Undertaker is not null and @Undertaker <> '')
set @Where = @Where + ' a.@@Undertaker =' + @Undertaker
set @Sql = @Sql + @Where
set @Sql = @Sql + ' group by a.CaseYear,e.Data '
end
4.多表连接查询及多列转一列
select * from(
select a.id as LrId,b.CSerialNo,c.[WordName] + '【' + CAST(c.[CaseYear] AS NVARCHAR(MAX)) + '】' + '第' + d.[YCaseNo] + '号' AS[FullYCaseNo],d.Litigant2,d.LawyerUnit,a.BorrowPerson,a.BorrowDate,a.CDNums,a.RegisterPerson,a.RegisterDate,a.AddMaterialName,a.AddLocation,a.PageNum,a.Remark,e.VolumesCount,e.VolumeCaptions,ROW_NUMBER() OVER(ORDER BY a.Id) AS RowIndex from TCase_LendRegist a
inner join TCase_LendRegistMapWordInfo b on a.Id = b.LRId
inner join TCase_WordInfo c on b.CSerialNo = c.CSerialNo
inner join TCase_DetailInfo d on b.CSerialNo = d.CSerialNo
left join(
select LRId,count(*) as VolumesCount,VolumeCaptions = (stuff((select ',' + VolumeCaption from TCase_LendRegistMapVolumeInfo where LRId = g.LRId for xml path('')),1,1,'')) from TCase_LendRegistMapVolumeInfo g group by LRId
)e on a.Id=e.LRId
)T
SqlServer常用语句整理的更多相关文章
- SqlServer常用语句
首先,写这个的原因是我其实sql语句不太行,总觉得自己写得很乱,好像也没有系统学习过,借此复习和与大家探讨 No.1 关于查询时间区间是否重叠的sql语句 问题是这样:插入之前,想查询同User是否其 ...
- Mysql常用语句整理
把工作常用的mysql命令整理一下,省的用的时候在到处找 1.常用命令 1.1 登录 mysql -u root -p 1.2 生成随机数 若在 i<=R<=j 范围内生成随机数 FLOO ...
- SQL常用语句整理
有次笔试最后一页的三个数据库连接查询,没有写出来,被考官暗讽了下.现在想来,实习初,确实很LOW.现公司刚入职的时候,负责过ETL方面,所以和数据库打了不少交道,五十行的联合查询.上百行的存储过程很常 ...
- SqlServer常用语句参考
1.SQL SERVER中如何使用SQL 语句复制表结构: select * into 新表 from 旧表 where 1=2 把“旧表”的表结构复制到“新表”,1=2不复制数据,如果要复制数据,就 ...
- SQLSERVER常用脚本整理
数据库存储空间查询(数据库的大小及数据库中各个表的数据量和每行记录大小) IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = Object_i ...
- sqlserver 常用语句
1.查询表中的RID RID=RowID=(fileID:pageID:slotID) SELECT sys.fn_PhysLocFormatter(%%physloc%%) AS rid,* FRO ...
- C#学习笔记(4)——sqlserver常用语句
说明(2017-5-26 17:29:05): 需要天天练习: 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] ...
- SqlServer 常用语句方法
批量生成删表语句 select 'drop table '+b.name+'.'+a.name+';' from sys.tables a left join sys.schemas b on a.s ...
- mysql copy表或表数据常用的语句整理汇总
mysql copy表或表数据常用的语句整理汇总. 假如我们有以下这样一个表: id username password ----------------------------------- 1 a ...
随机推荐
- Spring 是什么?
概述 Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好.易于测试.可重用的代码. Spring 框架是一个开源的 Ja ...
- Ubuntu 16.04搭建php5.6 Web服务器环境
Ubuntu 16.04默认安装php7.0环境,但是php7目前兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错. 移除默认及已安装的PHP包 sudo dpkg -l ...
- Linux 安装配置 tftp 服务器
1.安装TFTP服务 安装服务端 sudo apt-get install tftpd-hpa 安装客服端 sudo apt-get install tftp-hpa 2.创建TFTP服务器目录 cd ...
- 1. 回顾Servlet
回顾Servlet 创建web工程 servlet-api:http://dwz.date/aTGa 编写Servlet import javax.servlet.ServletException; ...
- AtCoder Regular Contest 121 D - 1 or 2
题目链接:点我点我 Problem Statement Snuke has a blackboard and NN candies. The tastiness of the ii-th candy ...
- Python+Selenium学习笔记16 - unittest单元测试框架
unittest单元测试框架包括 Test Case, Test Suite, Test Runner, Test Fixture Test Cases 组成Test Suite, Test Run ...
- TensorRT 数据格式说明
TensorRT数据格式说明 NVIDIA TensorRT支持不同的数据格式.需要考虑两个方面:数据类型和布局. 数据类型格式 数据类型是每个单独值的表示.它的大小决定了数值的范围和表示的精度:分 ...
- CodeGen准备存储库
CodeGen准备存储库 CodeGen几乎总是与提供用于生成源文件的元数据的存储库结构一起使用,并且许多令牌需要使用存储库结构. 基本要求是有一个结构定义,并且该结构定义包含一个或多个字段定义.有些 ...
- c语言经典算法---计算Fibonacci数列
算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.下面我就分享一个C语言中比较基础却极为重要的一个算法----计算Fi ...
- canal+mysql+kafka实时数据同步安装、配置
canal+mysql+kafka安装配置 概述 简介 canal译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费. 基于日志增量订阅和消费的业务包括 数 ...