没有子查询的两个分支上的sql聚合

时间:2011-10-28 22:05:57

标签: sql

我有

items  ---- supporders ---- suppincoming 
=====       ==========      ============
ItemID      OrderID         OrderID
            ItemID          IncQty
            OrderQty
            SODate

items  ---- orderrows ---- orders
=====       =========      ======
ItemID      ItemID         OrderID
            OrderID        OrderDate
            ORQty

并且想要对每个项目的ORQty,OrderQty和IncQty求和。

如果我加入所有牌桌,则来自item的两个“分支”会产生一种交叉连接,并且数量会增加。

子查询提供正确的值,但速度非常慢。

编辑: 请参阅MS-access runnable示例的链接。

有更好的方法吗?

的问候, /吨

2 个答案:

答案 0 :(得分:0)

select itemId, count(orderQty) as OrderQty, count (incQty) as IncQty
from Items I, supporders S, suppincoming SI
where I.itemId = S.ItemId AND S.OrderId = SI.OrderId
group by I.itemID

select itemId, count(ORQty)
from items I, orderRows O
where I.itemId = o.itemId
group by itemId

我没有尝试过这些查询,原谅任何错误.....我希望它有效

答案 1 :(得分:0)

似乎无法在没有子查询的情况下发出查询,显然,带有链接表的MS访问到sql-server(firebird)是一个性能猪。

从Access执行参数化传递查询可以解决性能问题。

感谢 /吨