2013-04-25 50 views
1

我試圖加入一個包含零件的卡片,並將一個總計的股票價值加入零件(某些零件不會有股票行)。在Squeryl中加入多個聚合表

我有我本以爲這工作如下..

def stockPerBase = from(stock)(s => groupBy(s.base) compute(sum(s.quantity))) 
def allCardsWithStock = 
    join(cards, parts, stockPerBase.leftOuter)((c,p,s) => 
     on(c.partId === p.id, p.base === s.map(_.key)) 
     select(c, p, s.measures)) 

不過,我得到以下錯誤:

too many arguments for method on: (table: org.squeryl.Table[A])(declarations: A => Seq[org.squeryl.dsl.ast.BaseColumnAttributeAssignment])Unit 
[error] on(c.partId === p.id, p.base === s.map(_.key)) 

我如何能做到這樣的查詢任何幫助是極大apprecited。

回答

2

select子句應位於查詢中的on之前。嘗試顛倒兩個子句的順序,它應該工作。