sqlserver计数,sql计数器

sqlserver怎么实现同一个表中多个count查询并且分组并且统计总数

可以有两种解决方法,

创新互联公司主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销推广、网站程序开发、HTML5响应式网站建设移动网站建设、微商城、网站托管及成都企业网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为不锈钢雕塑行业客户提供了网站营销推广服务。

所需工具:SQL

查询两个count的方法1:

SELECT paperName , COUNT (1) AS 总题数 , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数FROM questionGROUP BY paperNme

查询两个count的方法2:

select s.总题数, s.审核题数, s.paperNamefrom (select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperNamefrom question--where papername in (select distinct paperName from question), 这个条件可以不要了group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用) s

SQL Server 2005中为安装程序填加计数器注册表项值!怎么操作?

SQL

Server

安装开始前,Microsoft

SQL

Server

安装程序中的安装配置检查器

(SCC)

会验证计数器注册表项的值。如果

SCC

无法验证现有的注册表项,或

SCC

无法运行

lodctr.exe

系统程序,则

SCC

检查会失败,致使安装受阻。

错误编辑注册表会严重损坏您的系统。更改注册表项之前,建议您备份计算机中的所有重要数据。

1.在

Microsoft

Windows

2003

Windows

XP

桌面上,依次单击“开始”、“运行”,然后在“打开”中键入

regedit.exe,再单击“确定”。在

Windows

2000

中,使用

regedt32.exe

启动注册表编辑器。

2.定位到以下注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Perflib]

"Last

Counter"=dword:00000ed4

(5276)

"LastHelp"=dword:00000ed5

(5277)

3.上一步的“Last

Counter”值

(5276)

必须与以下注册表项中“Perflib\009”的“Counter”项的最大值匹配,并且上一步的“Last

Help”值

(5277)

必须与以下注册表项中“Perflib\009”的“Help”项的最大值匹配。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Perflib\009]

注意

009

是英文中的一个示例。“Last

Counter”和“Last

Help”值是由

Windows

动态分配的;这两个值会因计算机的不同而不同。

4.如有必要,可修改“\Perflib”项中的“Last

Counter”和“Last

Help”值的值:在右侧窗格中,右键单击“Last

Counter”或“Last

Help”,单击“修改”,再单击“Base

=

"Decimal"”,在“值数据”中设置值,再单击“确定”。如有必要,对另一个项重复以上过程,然后关闭注册表编辑器。

5.再次运行

SQL

Server

安装程序。

注意:上面所描述的009是存储英文版的mssql2005的计数器,而中文版的则是004!

sqlserver中如何把字符串转换成数字

在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:

1. convert(int,字段名) 例如:select convert(int,'3')

2. cast(字段名 as int) 例如:select cast('3' as int)

其实,一般情况下没有必要把字符串转换为数字类型

假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQL SERVER会自动把字符串转换为数字再比较的!

例如:

select da.TITLE_NAME,dsc.NAME

from dbo.DV_DUTY dd

inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)

left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')

where dd.AREA is not null

这个SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。

但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。

SQL SERVER 2005中有判断字段是否为数字的函数:

ISNUMERIC(字段名) -----假如字段是数字类型返回1,不是就返回0

但是好像有的时候不好使,比如:select isnumeric('3,34') 就返回1

说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!

如何在 SQL Server 2005 中为安装程序增加计数器注册表项值

解决办法:1、在MicrosoftWindows2003或WindowsXP桌面上,依次单击“开始”、“运行”,然后在“打开”中键入regedit.exe,再单击“确定”。在Windows2000中,使用regedt32.exe启动注册表编辑器。2、定位到以下注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib]找到里面的LastCounter和LastHelp,注意LastCounter和LastHelp值是由Windows动态分配的;这两个值会因计算机的不同而不同。我的分别是6760和6761。3、上一步的“LastCounter”值(6760)必须与以下注册表项中“Perflib\004”的“Counter”项的最大值匹配,并且上一步的“LastHelp”值(6761)必须与以下注册表项中“Perflib\004”的“Help”项的最大值匹配。[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\004]注意004是简体中文中的一个示例,如果你安装的是英文版,对应的应该是:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\009]4、比如说:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib\004中的Help,双击后打开编辑框,里面是:3Systemperformanceobject包含应用于计算机上不止一个组件处理器范例的计数器。5Memoryperformanceobject中间的都省略掉了6785写入所有数据源中的BLOB字节总数。6787在整个管道中使用的BLOB假脱机文件数。这个最后一个数值6787就应该对应Perflib中LastHelp的十进制数值。当然修改的时候别忘了选择十进制。5、关闭注册表编辑器6、再次运行SQLServer安装程序就应该没问题了。


本文题目:sqlserver计数,sql计数器
标题URL:http://scyanting.com/article/dsiossd.html