custNo cellcode
80-0025 W2-302
80-0026 C1-307
80-0027 W1-1006
80-0027 W1-1007
80-0027 W1-1008
80-0032 E2-1803
80-0032 E2-1804
80-0032 E2-1805
80-0032 E2-1805select (一大堆复杂的查询语句,关联十几个表,几十行sql代码)COMPUTE count (custNo)第二记录的结果是总记录数 9, 但不是我想要的结果,我想要 custNo 重复的记录算一个记录。 要显示4,
同时显示出cellcode 为 8 。
80-0025 W2-302
80-0026 C1-307
80-0027 W1-1006
80-0027 W1-1007
80-0027 W1-1008
80-0032 E2-1803
80-0032 E2-1804
80-0032 E2-1805
80-0032 E2-1805select (一大堆复杂的查询语句,关联十几个表,几十行sql代码)COMPUTE count (custNo)第二记录的结果是总记录数 9, 但不是我想要的结果,我想要 custNo 重复的记录算一个记录。 要显示4,
同时显示出cellcode 为 8 。
解决方案 »
- 最近看SQL2005技术内幕,悲剧了,感觉要先看点其他什么垫垫底才行
- DELETE中多inner join 的一点疑问
- 嵌套查询的问题
- 还原SQL备份文件时提示sqlstate:42000错误,怀疑空间不足,查询备份文件如附件,请问要多空间才能还原?试过40G可用空间不成功
- DataTable 过滤问题
- 请问一下,有没有可能在用IN的同时使用模糊查询,内祥。
- sql统计问题
- 请教一个backup问题
- 这个语句怎么写,在vb.net下使用参数的sql语句
- treeview控件应用?
- sqlserver2000 mdf或ldf其中一个损坏。想新建一个同名数据库进行恢复,新建同名数据库失败。
- sql server 2005怎么创建没有对master数据库访问权限的用户?
left join b .......
.....
where 1=1 .....
order by c.code,r.codeCOMPUTE count ( distinct c.code) 我一开始试过了,报错。
消息 156,级别 15,状态 1,第 21 行
关键字 'distinct' 附近有语法错误。
可能要程序里判断取到的记录 distinct后的数量。
只有別用COMPUTE 這玩藝
用其他實現吧
用 COMPUTE 和 COMPUTE BY 汇总数据
提供 COMPUTE 和 COMPUTE BY 是为了向后兼容。请改为使用下列组件:
Microsoft® SQL Server™ 2000 Analysis Services 和用于 Analysis Services 的 OLE DB 或 Microsoft ActiveX® 数据对象(多维)(ADO MD) 一起使用。有关更多信息,请参见 Microsoft SQL Server™ 2000 Analysis Services。
ROLLUP 运算符。有关更多信息,请参见用 ROLLUP 汇总数据。
COMPUTE BY 子句使您得以用同一 SELECT 语句既查看明细行,又查看汇总行。可以计算子组的汇总值,也可以计算整个结果集的汇总值。
COMPUTE 子句需要下列信息:
可选的 BY 关键字,该关键字可按对一列计算指定的行聚合。
行聚合函数名称;例如,SUM、AVG、MIN、MAX 或 COUNT。
要对其执行行聚合函数的列。
COMPUTE 生成的结果集
COMPUTE 所生成的汇总值在查询结果中显示为分离的结果集。包括 COMPUTE 子句的查询的结果类似于控制中断报表,即汇总值由指定的组(或称中断)控制的报表。可以为各组生成汇总值,也可以对同一组计算多个聚合函数。
当 COMPUTE 带有可选的 BY 子句时,符合 SELECT 条件的每个组都有两个结果集:
每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。
每个组的第二个结果集有一行,其中包含该组的 COMPUTE 子句中所指定的聚合函数的小计。
当 COMPUTE 不带可选的 BY 子句时,SELECT 语句有两个结果集:
每个组的第一个结果集是包含选择列表信息的所有明细行。
第二个结果集有一行,其中包含 COMPUTE 子句中所指定的聚合函数的合计。
COMPUTE 用法示例
下列 SELECT 语句使用简单 COMPUTE 子句生成 titles 表中 price 及 advance 的求和总计:
USE pubs
SELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance)
下列查询在 COMPUTE 子句中加入可选的 BY 关键字,以生成每个组的小计
USE pubs
SELECT type, price, advance
FROM titles
ORDER BY type
COMPUTE SUM(price), SUM(advance) BY type
此 SELECT 语句的结果用 12 个结果集返回,六个组中的每个组都有两个结果集。每个组的第一个结果集是一个行集,其中包含选择列表中所请求的信息。每个组的第二个结果集包含 COMPUTE 子句中两个 SUM 函数的小计。
说明 一些实用工具(如 osql)显示多个小计或合计聚合汇总的方式可能会使用户以为每个小计都是结果集中的单独一行。这是由于该实用工具设置输出格式的方式;小计或合计聚合返回时单独占用一行。其它应用程序(如 SQL 查询分析器)将多个聚合设置在同一行。
比较 COMPUTE 和 GROUP BY
COMPUTE 和 GROUP BY 之间的区别汇总如下:
GROUP BY 生成单个结果集。每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数。
COMPUTE 生成多个结果集。一类结果集包含每个组的明细行,其中包含选择列表中的表达式。另一类结果集包含组的子聚合,或 SELECT 语句的总聚合。选择列表可包含除分组依据列或聚合函数之外的其它表达式。聚合函数在 COMPUTE 子句中指定,而不是在选择列表中。
下列查询使用 GROUP BY 和聚合函数;该查询将返回一个结果集,其中每个组有一行,该行中包含该组的聚合小计:
USE pubs
SELECT type, SUM(price), SUM(advance)
FROM titles
GROUP BY type
说明 在 COMPUTE 或 COMPUTE BY 子句中,不能包含 ntext、text 或 image 数据类型。
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
那你就在你查詢外面套一層,專門來統計這個就可以了三,,,select disinct custNo from
(
select (一大堆复杂的查询语句,关联十几个表,几十行sql代码)
) as TMPDB
COMPUTE count(custNo)