导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

获取 compute 值的问题

skyfor 2008-01-08 02:02:21
情况如下:
现有表P 字段有 sheet_no ,money,flag
里面的数据大致如下,需要统计营业额
--------------------------------
sheet_no money flag
A1 200.0000 A
A1 200.0000 B
A2 400.0000 A
A2 400.0000 B
A3 600.0000 A
--------------------------------
我现在用
select distinct sheet_no,money
from p
compute sum(money)
生成的结果集,不知道怎么把compute的结果 赋值 给变量?
我现在是通过临时表中转解决的,想请问怎么将compute生成的赋给变量,或者有类似别的办法直接解决的?

----------------------------------------------
declare @i as decimal(18,2)
select @i = money from p compute sum(money)
select @i

提示错误:
在 赋值 中不允许使用 COMPUTE 子句。
-----------------------------------------------
...全文
65 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyfor 2008-01-09
恩 继续顶起看看..
迟点结贴给分拉
回复
-狙击手- 2008-01-08
恩 谢谢
如果在存储过程中
能不能把
compute 生成的结果
赋给某个变量呢?


---

我还没有找到办法,帮助也没有
回复
skyfor 2008-01-08
恩 谢谢
如果在存储过程中
能不能把
compute 生成的结果
赋给某个变量呢?
回复
-狙击手- 2008-01-08
declare @t table(sheet_no varchar(2),[money] numeric(12,2),flag char(1))
insert @t select 'A1',200.0000,'A'
insert @t select 'A1',200.0000,'B'
insert @t select 'A2',400.0000,'A'
insert @t select 'A2',400.0000,'B'
insert @t select 'A3',600.0000,'A'
--------------------------------

select distinct sheet_no,money
from @t

compute sum(money)

select sum(money) from
(select distinct sheet_no,money from @t) a


select sum(money)
from @t t
where not exists(select 1 from @t where sheet_no = t.sheet_no and flag> t.flag)
/*
sheet_no money
-------- --------------
A1 200.00
A2 400.00
A3 600.00

sum
========================================
1200.00


(所影响的行数为 4 行)


----------------------------------------
1200.00

(所影响的行数为 1 行)


----------------------------------------
1200.00

(所影响的行数为 1 行)
8/
回复
-狙击手- 2008-01-08

select sum(money)
from @t t
where not exists(select 1 from @t where sheet_no = t.sheet_no and flag> t.flag)
回复
skyfor 2008-01-08

select @i = sum(money) from
(select distinct sheet_no,money from @t) a
select @i


我现在用的就是类似这样的临时表的方式
谢谢了..


select @i = sum(distinct money) from @t


表的数据很多的,蛮多订单的价格都是一样的..
刚才描述的不够详细了..

继续等待..
回复
-狙击手- 2008-01-08

declare @i as decimal(18,2)

select @i = sum(money) from
(select distinct sheet_no,money from @t) a
select @i

or

select @i = sum(distinct money) from @t

select @i

回复
-狙击手- 2008-01-08
select sum(money)  from
(select distinct sheet_no,money from @t) a


or

select sum(distinct money) from @t
回复
tim_spac 2008-01-08

declare @i as decimal(18,2)
select @i = sum(money) from p
回复
skyfor 2008-01-08
顶起来
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告