|
楼主 |
发表于 2011-11-18 22:30
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 opiona 于 2011-11-18 23:05 编辑
又来SQL的问题了:
我想在SQL的查询结果中继续查询,试图将附件中的代码写成一句SQL:
- SQL = " SELECT 日期,sum(数值合计),sum(数值个数),sum(合计),sum(个数) from "
- SQL = SQL & " (SELECT 日期,sum(数值) as 数值合计,COUNT(数值) as 数值个数,0,0 from [Sheet1$a1:b18] where 数值>0 GROUP BY 日期 "
- SQL = SQL & " Union ALL"
- SQL = SQL & " select 日期,0,0,sum(数值) as 合计,COUNT(数值) as 个数 from [Sheet1$a1:b18] where 数值<0 GROUP BY 日期)"
- SQL = SQL & " GROUP BY 日期"
复制代码 我的本意是:将两个分类汇总(一个是大于0的合计和个数,另一个是小于0的合计和个数)
连接成一个5个字段的数据表:日期、数值合计、数值个数、合计、个数
然后在用SQL在这个虚拟(不可见)的数据表中查询
但是总是提示错误,大侠帮忙看看!
用SQL在SQL查询结果中查询.rar
(13.86 KB, 下载次数: 91)
写成下面的样子也不行,结果全是大于0的,:
- SQL = " SELECT 日期,sum(数值合计),sum(数值个数),sum(合计),sum(个数) from "
- SQL = SQL & " (SELECT 日期,sum(数值) as 数值合计,COUNT(数值) as 数值个数,sum(数值) as 合计,COUNT(数值) as 个数 from [Sheet1$a1:b18] where 数值>0 GROUP BY 日期 "
- SQL = SQL & " Union ALL"
- SQL = SQL & " select 日期,sum(数值) as 数值合计,COUNT(数值) as 数值个数,sum(数值) as 合计,COUNT(数值) as 个数 from [Sheet1$a1:b18] where 数值<0 GROUP BY 日期)"
- SQL = SQL & " GROUP BY 日期"
复制代码 大侠给了另一种写法:
- SQL = "select 日期,sum(iif(数值>0,数值,0)),sum(iif(数值>0,1,0)),sum(iif(数值<0,数值,0)),sum(iif(数值<0,1,0)) from [sheet1$a1:b18] group by 日期"
复制代码 还是想知道:
用SQL的查询结果临时建立一个表,用SQL在这个虚拟(不可见)的数据表中继续另外一个查询
一般SQL怎么写呢? 能否发几个经典例句。
|
|