SQL Sever 学习系列之一

本学习系列,从实际工作需要中积累,对于一个新手而言,写出几条漂亮的查询语句,应该是可以受启发的。

一、问题的需求是:员工薪酬发放,现有资金能发放多少人,哪些人应得?

     /*所有的记录,从头开始累加,直到累加值大于一个给定值以后,返回之前计入累加的记录*/

先建立相关职工薪酬表,添加测试数据:

create table Table_1
(
id int identity not null primary key,
name char(10),
je decimal(8,2),
date datetime
) insert into Table_1 values('张三',200,GETDATE())
insert into Table_1 values('李四',100,GETDATE())
insert into Table_1 values('王五',270,GETDATE())
insert into Table_1 values('张小三',400,GETDATE())
insert into Table_1 values('李四往',180,GETDATE())
insert into Table_1 values('王小五',910,GETDATE()) select * from Table_1

结果如下:

注:列(je)为员工应得薪酬,先假定老板只有现金400元,看看能发多少人,哪些人可以领取?

解决方案如下:

declare @i int,@sum1 decimal(8,2),@sum2 decimal(8,2)
set @i=1
set @sum2=400
set @sum1=0
while @i<(select max(id) from Table_1)
begin
set @sum1=@sum1+(select je from Table_1 where id=@i)
if @sum2<@sum1
begin
break
end
set @i=@i+1
end
select * from Table_1 where id<@i

结果如下:

此方法比较简单,还可以用储存过程实现。(读者可以试试)

二、sql server 2005中如何查询一个数据库中有多少张表?

--查询当前数据库下所有用户建立的表

SELECT name
,xtype
,status
,crdate
,userstat
,sysstat
,refdate
,version
FROM sysobjects WHERE xtype = 'U'
   其中:
xtype char(2) 对象类型。可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程

结果如图:

三、(1)查找一个数据库或表中所含的字段

代码如下:

 --zjm表的字段名称
select name
,xtype
,typestat
,length
,status
,type
,usertype from syscolumns where id=object_id( 'zjm') --zjm表的字段数
select count(name) 表的字段数 from syscolumns where id=object_id( 'zjm')

结果如下:

(2)在一个库中寻找一个字段归属的数据表

select b.name '表名称'
,a.xtype
,a.typestat
,a.xusertype
,a.language
,a.length
,b.crdate
from syscolumns a
inner join sysobjects b on a.id=b.id and b.xtype='U' and a.name='name'

结果如下:

最新文章

  1. Oracle Flashback和RMAN示例
  2. 接入Google Play SDK
  3. SQL2012删除作业失败的处理
  4. 批量删除SharePoint 2010的List中的item
  5. 干货分享:IBM StorwizeV7000部署与运维
  6. oracle 迁移到 mysql(结构和数据)
  7. Eclipse 中引用其他项目及项目打包
  8. Python中range的用法
  9. mysql dos启动出现1067错误的解决方法
  10. iOS强制切换横屏、竖屏
  11. 分享基于分布式Http长连接框架--代码模型
  12. Regularity criteria for NSE 5: $u_3,\om_3$
  13. 解决IDEA16闪退的问题
  14. windows下解决python输出utf-8中文
  15. 包含了重复的“Content”项。.NET SDK 默认包含你项目目录中的“Content”项。可从项目文件中删除这些项;如果希望将其显式包含在项目文件中,可将“EnableDefaultContentItems”属性设置为“false”
  16. Maven编译时跳过Test
  17. Servlet 实现网页计数器
  18. C语言实现将彩色BMP位图转化为二值图
  19. android studio 使用问题记录
  20. ant-design-pro Login 组件 实现 rules 验证

热门文章

  1. Squid 正向代理配置
  2. nodejs实现静态托管
  3. iOS 学习之 UITabBarController
  4. 服务器Windows 2008 R2 安装SQL 2008 R2
  5. 用nc做网络压力测试
  6. redis集群使用Java工具类(Java jedis集群工具类)
  7. Python爬虫之利用正则表达式爬取内涵吧
  8. ural 2023 Donald is a postman(水)
  9. 计算机网络【六】:传输层-TCP概述 【转】
  10. Nhibernate Fluent INNER JOIN 查询