获取 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 子句。
-----------------------------------------------
...全文
109 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
顶起来

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧