SQL中的查询问题(30分)

  • 主题发起人 主题发起人 deron
  • 开始时间 开始时间
D

deron

Unregistered / Unconfirmed
GUEST, unregistred user!
Select a.prno,a.OrigQty,
(select sum(qtyP) from Invlist c where c.prno=a.prno ) as InQty,
(select sum(qtyP) from Invlist c where c.prno=a.prno ) as outQty,
(select sum(qtyP) from Invlist c where c.prno=a.prno ) as rtnQty
from invcheck a
上述查询结果只显示prno,origqty字段值,inqty,outqty,rtnqty显示都为空值。
但表invcheck和invlist中都有prno=1001的纪录,如果直接使用该查询语句
select sum(qtyP) from Invlist c where c.prno=1001怎显示出正确的sum(qtyp)值。
不知什么地方出了问题。我用的数据库是Paradox.
 
SELECT a.prno, a.OrigQty, B.INQTY AS InQty, C.OUTQTY AS outQty,
C.RTNQTY AS rtnQty
FROM invcheck a CROSS JOIN
(SELECT SUM(qtyP) AS INQTY
FROM Invlist c
WHERE c.prno = a.prno) B CROSS JOIN
(SELECT SUM(qtyP) AS OUTQTY
FROM Invlist c
WHERE c.prno = a.prno) C CROSS JOIN
(SELECT SUM(qtyP) AS RTNQTY
FROM Invlist c
WHERE c.prno = a.prno) D
这样试试
 
用另一方法吧
可以在计算字段中写
 
To:天真
该语句对paradox好像不支持!?
 
Select a.prno,a.OrigQty,sum(qtyP) as inqty
from invcheck a
group by a.prno,a.OrigQty
 
select sum(qtyP) from Invlist c ,invcheck a where c.prno=a.prno
是可行的。

你的SQL本身也有问题,至少表达的意思不明确。
 

Similar threads

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