表 Table1
列: Date PdtNo Qty Price Amt
记录:2002-09-22 A03 10 60.00 600.00
2002-09-22 A01 20 20.00 400.00
2002-09-22 A03 30 50.00 1500.00
.
.
需要统计成如下形式
Rate1 Rate2
A01 20 20.00 400.00 33.33% 16%
A03 40 60.00 2100.00 66.66% 84%
说明:
1. 按PdtNo字段分组求和 Qty字段.
2. Price字段不需要计算,只是随机取一笔就行。
3. Rate1表示 数量/总数 所占百分比 如:A01 20/60
4. Rate2表示 金额/总金额 所占百分比 如: A01 400/2500
以上要求能否在一个SQL语句中实现?估计不太容易吧。欢迎进来讨论。
列: Date PdtNo Qty Price Amt
记录:2002-09-22 A03 10 60.00 600.00
2002-09-22 A01 20 20.00 400.00
2002-09-22 A03 30 50.00 1500.00
.
.
需要统计成如下形式
Rate1 Rate2
A01 20 20.00 400.00 33.33% 16%
A03 40 60.00 2100.00 66.66% 84%
说明:
1. 按PdtNo字段分组求和 Qty字段.
2. Price字段不需要计算,只是随机取一笔就行。
3. Rate1表示 数量/总数 所占百分比 如:A01 20/60
4. Rate2表示 金额/总金额 所占百分比 如: A01 400/2500
以上要求能否在一个SQL语句中实现?估计不太容易吧。欢迎进来讨论。
解决方案 »
- 方法指针
- 怎样检测一篇UTF8编码的网页中的中文是否为繁体?
- 有关delphi的OLEContainer控件操控MS Word文档的问题?
- 这样的功能怎么实现啊???
- Requery()的用法?
- 也许你正为复杂的报表,繁琐的表头,为复杂的打印
- 新手的问题!
- 高分求答!如何把20万条数据在45分钟内从一个文本文件导入数据库?在线等候!
- 能不能把网上邻居加入到drivecombobox的列表中???
- 神啊!救救我吧!--关于TLISTVIEW的问题.急急急(高分)
- 我只是想把Word文档显示在窗体上,该怎么做?时间紧,任务急!
- 都来看看吧!!我有个表里面有时间想取这个时间字段里的最大值和当前时间比较怎么样写呀!!
, sum(qty)/(select sum(qty) from xxx) as rate1
, sum(amt)/(select sum(amt) from xxx) as rate2
from xxxx
group by pdtno我没试验过,但是思路大致如此
select pdtno, sum(qty), max(price) as maxpice, sum(amt) as amt
, cast(sum(qty) as decimal)/(select sum(qty) from table1) as rate1
, sum(amt)/(select sum(amt) from table1) as rate2
from table1
group by pdtno不过这个查询效率很低 :)
declare @total_qty numeric(9,4),@total_amt decimal numeric(9,4)
set @total_qty=(select sum(qty) from table)
set @total_amt=(select sum(amt) from table)select pdtno, sum(qty), max(price) as maxpice, sum(amt) as amt
, sum(qty)/@total_qty as rate1
, sum(amt)/@total_qyt as rate2
from table1
group by pdtno我没有比过速度,但我想肯定能快一些。因为这里的子查询应该相对于每一行都要执行。所以速度会慢一些。