嵌套查询和汇总记录值的问题:用union,paradox表,local sql。望SQL高手解答! (50分)

  • 主题发起人 主题发起人 czlucky
  • 开始时间 开始时间
C

czlucky

Unregistered / Unconfirmed
GUEST, unregistred user!
只能用local sql,表是paradox的,现用
select wareno,sum(number),sum(price) from stock group by wareno
union all
select wareno,sum(number),sum(price) from sell group by wareno
union all
....
order by wareno
获得合并了的数据,但多个表就有多条合并的记录,能不能再将合并后的数据集合在汇总,
即:将上面的数据集合中wareno相同的记录再进行合并,使最终的数据集合中wareno相同
的记录只有全部合并的一条记录?
用英文表达就是:SUM(Sum(stock.number)、sum(sell.number)、...)
由于上面的限制“local sql,paradox表”,所以不能用视图(view)!
 
用嵌套查询:
SELECT tt.Wareno,SUM(tt.number)
FROM (你上面的查询) AS tt
GROUP BY tt.Wareno
 
出错:
SELECT aa.WareNo, SUM(aa.Number), SUM(aa.Price)
FROM
( SELECT WareNo as WareNo, SUM(Number) as Number, SUM(Number * Price) as Price FROM StockWare GROUP BY WareNo
UNION ALL
SELECT WareNo as WareNo, 0-SUM(Number) as Number, 0-SUM(Number * Price) as Price FROM SellWare GROUP BY WareNo
) as aa
Group by aa.wareno
ORDER BY aa.WareNo
请注意:“local sql;paradox表”
 
错误的提示是什么?
应该一看提示就知道问题出在哪儿了
 
可能不能合并吧
如果能我也想知道如何做
若没有办法
只好一条条记录相加了
 
糟糕忘记写错误了:
合并是可以,已成功,就是合并后的再SUM不能成功(合并的第一个sum可以),
好象是不支持“嵌套查询”;
提示:
Invalid use of keyword
Token : SELECT
Line Number: 2.
 
大家可不可以即时给我答案,我在这里等一下。
 
建一临时表
WARENO NUMBER PRICE
WHILE NOT QUERY.EOF DO
把WARENO相同的NUMBER ,PRICE值相加
OK
 
最好不要建临时表!
 
我测试了一下,PARADOX中无法通过,但在ACCESS正常。
不好意思,我对PARADOX的SQL语法不是很熟悉。不能帮到你了:)
 
BDE+Paradox在SQL方面支持太差啦,我只好将原来的所有代码全改成ADO+Access了,
好在不是太麻烦,因为delphi移植处理得太好啦!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
941
SUNSTONE的Delphi笔记
S
后退
顶部