SQLSERVER2000, 带汇总字段的查询结果集如何再进行查询???(50分)

  • 主题发起人 主题发起人 leejames
  • 开始时间 开始时间
L

leejames

Unregistered / Unconfirmed
GUEST, unregistred user!
如下:

表1 表2
-----------------------------------------
a1 b1
a2 b2
a3 b3
a4

返回结果集

a1, a2, b2, sum(a4) 当 a1=b1

在这个结果集中如何再进行查询??可否一条Select(嵌套)完成。
 
使用游标,做个存储过程吧.
 
在SQL里面使用子查询 或 在存储过程里面使用临时表
 
to: hbezwwl
没有别的办法了吗?我第一次用SQL SERVER,正在做一个东东。
时间很急,你说的东西我只是听过,没时间再学了。
不用游标、存储过程能否实现??
 
子查询我试过,因为有sum字段,无法通过
 
select a1,a2,a3,tmp
from (select a1,a2,a3,sum(a4) as tmp from 表1 ....) AAA
where .....
 
to: QuickSilver
我就是用你提的方法通不过,所以来这里问的,你可以试试看。
 
那就使用临时表吧,也可以的,//不用存储过程

先查询出结果,生成临时表,然后再查询就行了.
 
临时表我也考虑过,只是每次重新查询都要写进临时表再查询,我觉得有点不妥。
没有更好的办法了吗?
大家再帮忙想想,兄弟我先谢过了。
 
表1 smMerCode: MerCode, MerName ...
表2 Stocks: MerCode, PurchaseQty ...
主要用到上面几个字段,其它的可不考虑。

SELECT mercode, mername, Stockqty
FROM (SELECT Stocks.MerCode, SmMerCode.MerName, SUM(Stocks.PurchaseQty)
AS StockQty
FROM Stocks INNER JOIN
SmMerCode ON Stocks.MerCode = SmMerCode.MerCode)
DERIVEDTBL
GROUP BY MerCode, MerName, StockQty
去掉外层 Select 是可以返回结果集的。

帮帮忙!!
 
SELECT mercode, mername, sum(PurchaseQty) as Stockqty
FROM (SELECT Stocks.MerCode, SmMerCode.MerName, Stocks.PurchaseQty
FROM Stocks
INNER JOIN SmMerCode
ON Stocks.MerCode = SmMerCode.MerCode) DERIVEDTBL
GROUP BY mercode, mername
 
create procedure test
as
create #table temp_table
(a ,int ,
b ,int ,
c, int ,
d, int
)
delcare @a ,@b ,@c ,@d int
select @a=a1,@b=a2 ,@c=b2 from a_table ,b_table where a_table.a1=b_table.b1
select @d=sum(a4) from a_table ,b_table where a_table.a1=b_table.b1
insert .......#table_temp
select a,b,c,d from #table_temp
go
 
to: QuickSilver
果然名不虚传!厉害,成功了!

我原先另一个嵌套Select用过 Group By 在里面,好象提示出错,当时没仔细看什么原因。
刚学SQL SERVER, 很多东西不懂,以后还要多多请教。

 
QuickSilver:
你是怎么给我发消息的?用IE5.5/6? 我用的是5.0,好象没这功能。


 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部